home *** CD-ROM | disk | FTP | other *** search
/ Mac Expert 1995 Winter / Mac Expert - Winter 95.iso / Les fichiers / Utilitaires divers / Cat & Compresseurs / StuffIt InstallerMaker™ ƒ / Users Guide & License Agreement / Gestalt Selectors Inside Mac VI < prev    next >
Encoding:
Text File  |  1994-01-28  |  110.0 KB  |  2,619 lines  |  [TEXT/R*ch]

  1.  
  2. Supplemental Gestalt Selectors List 2.3
  3. =======================================
  4. First published: 12 October 1992, 13:15 CET (GMT+1)
  5. Last modified  : 28 January 1994, 18:55 CET (GMT+1)
  6.  
  7. Supplemental to the selector codes listed in the Gestalt Chapter of
  8. Inside Macintosh VI (IM VI), that is.
  9. These can include selector codes installed by Apple (system) software or by
  10. software from third parties (your software?).
  11. About IM Operating System Utilities: First it was scheduled for Winter 1992,
  12. then delayed until June and later to October 1993. Now I heard it will
  13. probably be released in May 1994. Retail price in Holland will be around $25.
  14.  
  15. This file can be best viewed with a mono-spaced font like Monaco. Because
  16. it is wrapped as setext you can use several utilities to index and read it.
  17. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  18. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu,
  19. archived respectively as:
  20.      info-mac/text/easy-view-232.hqx
  21.      info-mac/text/easy-view-233-patch.hqx
  22.      info-mac/text/setext-viewer-02-unix.uu
  23.  
  24. See for more information about this list the chapters at the end.
  25.  
  26. Contents
  27. --------
  28.     Changes
  29.       Contributions
  30.       Changes Overview
  31.     Gestalt Selector Codes
  32.       Apple System Software
  33.       Apple Additional Software
  34.       Third Parties Software
  35.     Unknown Gestalt Selector Codes
  36.       Apple System Software
  37.       Apple Additional Software
  38.       Third Parties Software
  39.     Gestalt Manager Calls
  40.       Gestalt Manager Routines
  41.       Undocumented Gestalt Manager Routines
  42.       Gestalt Value Routines
  43.     Kilo-liners
  44.       Direct Gestalt Calls
  45.       Direct GestaltValue Calls
  46.       GestaltSelectorZero
  47.     Abbreviations
  48.     Sources
  49.     Miscellaneous
  50.       AppleShare File & Print Server selector codes
  51.       Glue code
  52.       Related Software
  53.     About this list
  54.       Availability
  55.       Acknowledgements
  56.     Definitions and Format
  57.       Use in Language
  58.       Definitions
  59.       Format Selector Entry
  60.       Format Version Numbers
  61.     Legal Stuff
  62.       Notice of Liability
  63.       Trademarks
  64.       Distribution
  65.     Editor's Address
  66.  
  67. Changes
  68. =======
  69. All contributions and changes to the list since version 2.2 are listed
  70. in this chapter.
  71.  
  72. Contributions
  73. -------------
  74.  
  75. The following persons contributed to this version:
  76.  
  77. _Person:              Software:               Selector(s) added/changed:    _
  78. Anonymous            Close View cp           BSDa
  79.                      Easy Access cp          easy
  80.                      System                  cfrg, cput, dplv, dply, evnt,
  81.                                              mixd, mmu , os  , pcxg, stdf
  82.                      System (7.5a4,          alis, apml, bugy, cate, CDJR,
  83.                      but most since          clbv, dfnd, dsig, fndr, iscd,
  84.                      System 7.1 Pro)         malr, mbox, mjik, ocet, oceu,
  85.                                              os  , prpv, reno, sdvr, spsl,
  86.                                              xlat
  87. Sterling Babcock     System                  mach
  88. Lawrence D'Oliveiro  QuickDraw GX ext        grfx, os
  89. Marco Piovanelli     Inline Extension ext    tmTV
  90.                      WorldScript II ext      doub
  91. Jon Pugh             AppleScript ext         ascr, ascv
  92. Rene Ros             At Ease Startup         AtEa
  93.                      Link Tool Manager       ltma
  94.                      Remote Access Aliases   strm
  95.                      Sound Manager 3.0 ext   snd
  96.                      System >= 7.0           icon
  97.                      System (enablers)       mach
  98.                      System                  te
  99.  
  100. _Person:              Chapter/Section(s):                                   _
  101. Jim Browne           Abbreviations           ProDos
  102.  
  103. Many thanks to the new anonymous contributor for info about all the new
  104. selectors installed by System 7.1 Pro and System 7.5a4. Including those
  105. listed in a header file from Apple. It took a reasonable number of emails
  106. to sort all this info out, but here it is!
  107.  
  108. And yet another anonymous contributor emailed me the GestaltEqu.h header
  109. file from the ETO #13 CD-ROM. Now a number of selectors are known and
  110. several PowerPC related selectors added.
  111.  
  112. Changes Overview
  113. ----------------
  114. Added selectors
  115.   Apple System  : dfnd, dsig, malr, mixd, ocet, oceu, prpv, sdvr, spsl,
  116.                   te
  117.   Apple Add.    : 
  118.   Third Parties : 
  119. Added unknown
  120.   Apple System  : apml, cate, clbv, mbox, mjik, reno
  121.   Apple Add.    : AtEa, ltma, iscd
  122.   Third Parties : CDJR
  123. Changed selectors
  124.   Apple System  : alis, cput, easy, evnt, fndr, icon, os  , pcxg, snd ,
  125.                   stdf, xlat
  126.   Apple Add.    : grfx, mach
  127.   Third Parties : 
  128. Changed unknown
  129.   Apple System  : bugy
  130.   Apple Add.    : doub, tmTV
  131.   Third Parties : 
  132. Previously unknown
  133.   Apple System  : BSDa, dplv, dply
  134.   Apple Add.    : ascr, ascv
  135.   Third Parties : 
  136. Includes updates 2.2.1 thru 2.2.5, send to subscribers of the mailing
  137. list.
  138.  
  139. Gestalt Selector Codes
  140. ======================
  141. The following sections list selector codes of which the meaning is know.
  142.  
  143. Apple System Software
  144. ---------------------
  145. alis (System [7.0])
  146.      gestaltAliasMgrAttr (addition by Remote Access Aliases)
  147.  
  148.      gestaltAliasMgrSupportsRemoteAppletalk = 1; 
  149.                                              {supports Remote Appletalk} *9
  150.      gestaltAlias???                        = 2; {since System 7.1 Pro}
  151.  
  152.      See also remarks with 'qtim' selector.
  153. atkv (System [7.0, AppleTalk 56])
  154.      gestaltATalkVersion *4 (not listed)
  155.      Returns AppleTalk version as NumVersion.
  156.  
  157.      This is different from 'atlk' !
  158.      With the release of the System 7 Tuner product, AppleTalk will not be
  159.      loaded at startup, if prior to the previous shutdown AppleTalk was
  160.      turned off in the Chooser. Under this circumstance, the 'atkv'
  161.      selector is not available. If the 'atkv' selector is not available
  162.      under System 7, this is an indicator that AppleTalk cannot be turned
  163.      on without doing so in the Chooser and rebooting the system. *4
  164.  
  165.      gestaltATalkVersion = 'atkv'; *3/5
  166. atlk (System [6.0.4])
  167.      gestaltAppleTalkVersion (addition)
  168.      Returns the version of the .MPP driver as INTEGER.
  169.  
  170.      LAPMgrExists := (AppleTalkVersion >= 53); *4
  171. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  172.      gestaltCloseViewAttr (not listed)
  173.      Returns information about the CloseView Control Panel.
  174.  
  175.      gestaltCloseViewAttr               = 'BSDa';
  176.      gestaltCloseViewEnabled            = 0;
  177.      gestaltCloseViewDisplayMgrFriendly = 1; {Closeview compatible with}
  178.                                              {Display Manager (FUTURE)} *25
  179. cash (System [???]) *10
  180.      gestaltRAMCacheSize (not listed)
  181.      Returns byte-size of physical RAM allocated to Disk Cache.
  182.      0 = Disk Cache Off
  183.  
  184.      gestaltRAMCacheSize = 'cash';
  185.  
  186.      NOTE:
  187.      Is listed in THINK Reference 1.0 but it is unknown which System
  188.      Software version should install it.
  189. cfrg (System? [??? on PowerPC]) *25
  190.      gestaltCFMAttr (not listed)
  191.      Returns information about the Code Fragment Manager on the PowerPC
  192.      machines.
  193.  
  194.      gestaltCFMAttr    = 'cfrg';
  195.      gestaltCFMPresent = 0;      {Code Fragment Manager is present}
  196. conn (System [7.0], Communications Toolbox installed)
  197.      gestaltConnMgrAttr (addition)
  198.      With System 6, this Gestalt selector isn't implemented when the
  199.      Communications Toolbox is installed (Michael Hecht).
  200.  
  201.      gestaltConnMgrErrorString  = 2; {has CMGetErrorString} *11
  202.      gestaltConnMgrMultiAsyncIO = 3; {CMNewsIOPB,CMDisposeIOPB,} *11
  203.                                      {CMPBRead,CMPBWrite,CMPBIOKill}
  204. cpnt (System [7.1])
  205.      (Color Picker Extension ext [2.0]))
  206.      {Macintosh Easy Open ext? [???])
  207.      (QuickTime ext [1.0])
  208.      (Sound Manager ext [3.0]?)
  209.      (Speech Manager ext [1.1.1])
  210.      gestaltComponentMgr (not listed)
  211.      Returns Component Manager version as INTEGER.
  212.  
  213.      gestaltComponentMgr = 'cpnt'; *6
  214. cput (System? [???]) *20/25
  215.      gestaltNativeCPUtype (not listed)
  216.  
  217.      {Motorola Architecture}
  218.      gestaltCPU68000 = $0x000;
  219.      gestaltCPU68010 = $0x001;
  220.      gestaltCPU68020 = $0x002;
  221.      gestaltCPU68030 = $0x003;
  222.      gestaltCPU68040 = $0x004;
  223.      {PowerPC Architecture}
  224.      gestaltCPU601   = $0x101;
  225.      gestaltCPU603   = $0x103;
  226.      gestaltCPU604   = $0x104;
  227. crm  (System [7.0], Communications Toolbox Installed)
  228.      gestaltCRMAttr (additions)
  229.  
  230.      gestaltCRMPersistentFix = 1; {fix for persistent tools} *11
  231.      gestaltCRMToolRsrcCalls = 2; {has CRMGetToolResource/} *11
  232.                                   {ReleaseToolResource}
  233. ctbm (System [7.0], Communications Toolbox installed)
  234.      gestaltCTBManagersAttr (not listed)
  235.      Returns information about the Communications Toolbox Managers, it is a
  236.      bitmask of which managers are present.
  237.  
  238.      gestaltCTBManagersAttr = 'ctbm'; *7
  239. ctbu (System [7.0], Communications Toolbox installed)
  240.      gestaltCTBUtilsAttr (not listed)
  241.      Returns information about the Communications Toolbox Utilities.
  242.  
  243.      gestaltCTBUtilsAttr    = 'ctbu'; *7
  244.      gestaltCTBUtilsPresent = 0;      *7
  245. ctbv (System [7.0], Communications Toolbox Installed)
  246.      gestaltCTBVersion (addition)
  247.  
  248.      This selector is also installed by the Communications Toolbox for
  249.      System 6 (version 6.0.4 and later).
  250.      See for details IM VI.
  251. dfnd (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  252.      gestaltSDPFindVersion
  253.      Returns the SDP Find version as INTEGER.
  254.  
  255.      gestaltSDPFindVersion = 'dfnd';
  256. dict (System [7.1])
  257.      gestaltDictionaryMgrAttr (not listed)
  258.      Returns information about the Dictionary Manager.
  259.  
  260.      gestaltDictionaryMgrAttr    = 'dict';
  261.      gestaltDictionaryMgrPresent = 0;
  262. dplv (System [7.1 on PowerPC prototype?]) *25
  263.      gestaltDisplayMgrVers (not listed)
  264.      Returns Display Manager version as INTEGER?.
  265.  
  266.      gestaltDisplayMgrVers = 'dplv';
  267. dply (System [7.1 on PowerPC prototype?]) *25
  268.      gestaltDisplayMgrAttr (not listed)
  269.      Returns information about the Display Manager.
  270.  
  271.      gestaltDisplayMgrAttr = 'dply';
  272.      gestaltDisplayMgrPresent = 0; {True if Display Mgr is present}
  273.      gestalt???               = 1;
  274. dsig (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  275.      gestaltDigitalSignatureVersion
  276.      Returns version of the Digital Signature toolbox as BCD.
  277.  
  278.      gestaltDigitalSignatureVersion = 'dsig';
  279. easy (Easy Access cp [7.0?])
  280.      gestaltEasyAccessAttr (replacement?)
  281.  
  282.      gestaltEasyAccessAttr   = 'easy';
  283.      gestaltEasyAccessOff    = 0; {Easy Access present but off}
  284.      gestaltEasyAccessOn     = 1; {Easy Access on}
  285.      gestaltEasyAccessSticky = 2; {Easy Access "Sticky"}
  286.      gestaltEasyAccessLocked = 3; {Easy Access "Locked"}
  287.  
  288.      NOTE:
  289.      The 'easy' selector (at least with System 7.0.1) doesn't return the
  290.      reponse described above and in IM VI. The info below may be more
  291.      accurate.
  292.  
  293.      gestaltEasyAccessOff    =  0; {??? is set when Sticky Keys is set}
  294.      gestaltEasyAccessOn     = 13;
  295.      gestaltEasyAccessSticky = 14; {Sticky Keys}
  296.      gestaltEasyAccessMouse  = 15; {Mouse Keys}
  297. eajt (Easy Access cp [7.0])
  298.      gestaltEasyAccessJTable (not listed)
  299.      Returns the base address of the Easy Access jump-trap table.
  300.  
  301.      gestaltEasyAccessJTable = 'eajt'; *3
  302. edtn (System [7.0])
  303.      gestaltEditionMgrAttr (addition by Macintosh Easy Open)
  304.  
  305.      gestaltEditionMgrTranslationAware = 1; *12
  306. evnt (System [7.0]) *25
  307.      (Apple Event Manager ext [1.0.1], part of AppleScript Setup 1.0)
  308.      gestaltAppleEventsAttr (addition)
  309.  
  310.      gestaltAppleEventsPresent    = 0; {True if Apple Events present}
  311.      gestaltScriptingSupport    = 1;
  312.      gestaltOSLInSystem         = 2; {OSL is in system so don`t use the}
  313.                                      {one linked}
  314. flag (Network Extension ext [System 7.0 *4])
  315.      gestaltFlagshipAttr (not listed)
  316.      Returns information about the Flagship.
  317.  
  318.      gestaltFlagshipAttr       = 'flag'; *3
  319.      gestaltFlagshipPresent    = 0;      *3
  320.      gestaltFlagshipRegistered = 1;      *3
  321. fndr (Finder [7.1.1b1?]) *20
  322.      gestaltFinderAttr (not listed)
  323.  
  324.      gestaltFinderAttr               = 'fndr';
  325.      gestaltFinderDropEvent          = 0;
  326.      gestaltFinderMagicPlacement     = 1;
  327.      gestaltFinderCallsAEProcess     = 2;
  328.      gestaltOSLCompliantFinder       = 3;
  329.      gestaltFinderSupports4GBVolumes = 4;
  330.      gestaltFinderHandlesCFMFailures = 5;
  331.      gestalt???                      = 6;
  332. font (System [7.0])
  333.      (TrueType INIT ext for System 6)
  334.      gestaltFontMgrAttr (addition)
  335.  
  336.      gestalt???              = 1; {set with System 7.1}
  337.      gestaltDiskCachedFonts? = 2; {Disk Cached Fonts available?}
  338.  
  339.      NOTE:
  340.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  341.      with full subroutine names, there is a subroutine called
  342.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  343.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  344. fpu  (System [6.0.4])
  345.      gestaltFPUType (addition)
  346.  
  347.      gestalt68040FPU = 3; *2
  348. fs   (System [7.0])
  349.      gestaltFSAttr (addition)
  350.  
  351.      gestaltHasFileSystemManager = 2; *2
  352.  
  353.      NOTE:
  354.      File System Manager (version 1.0a3 according to the INIT resource
  355.      name) is installed by the 720K Floppy Disk Formatter, part of the
  356.      Hardware System Update 2.0 and later.
  357. fxfr (System [7.0])
  358.      gestaltFXfrMgrAttr (additions)
  359.  
  360.      gestaltFXfrMgrMultiFile   = 1; {supports FTSend and FTReceive} *11
  361.      gestaltFXfrMgrErrorString = 2; {supports FTGetErrorString} *7/11
  362. gval (GestaltValue Glue code)
  363.      gestaltValueAddr?
  364.      The first time you call NewGestaltValue, the library installs two non-
  365.      relocatable blocks in the system heap and the gestalt selector. One of
  366.      the blocks is filled with code: it's actually a gestalt function that
  367.      implements GestaltValue's shared mechanism. The second block contains
  368.      the selectors and values GestaltValue manages. The response returned
  369.      by the 'gval' selector is a pointer to the second non-relocatable
  370.      block in the system heap. (Marco Piovanelli)
  371. hdwr (System [6.0.4])
  372.      gestaltHardwareAttr (additions)
  373.  
  374.      gestaltHasRBV          =  2; {RBV}                            *3
  375.      gestaltHasOSS          =  5; {OSS}                            *3
  376.      gestaltHasSCSIDMA      =  6; {53C80 SCSI DMA}                 *3
  377.      gestaltHasSWIMIOP      =  8; {SWIM IOP}                       *3
  378.      gestaltHasSCCIOP       =  9; {SCC IOP}                        *3
  379.      gestaltHasFitch        = 10; {Fitch memory Controller}        *8
  380.      gestaltHasIWM          = 11; {IWM}                            *3
  381.      gestaltHasPWM          = 12; {PWM disk speed buffer}          *8
  382.      gestaltHasRAMSndBuff   = 13; {RAM-based sound buffer}         *8
  383.      gestaltHasVideoDAConv  = 14; {Video D/A Converter}            *8
  384.      gestaltHasPGC          = 15; {PGC (parity control)}           *8
  385.      gestalt???             = 16; {unknown, found in Speech Mgr ext}
  386.      gestalt???             = 17; {unknown, found in Speech Mgr ext}
  387.      gestalt???             = 18; {unknown, found in Speech Mgr ext}
  388.      gestaltHasSoftPowerOff = 19; {Software PowerOff (since 7.0?)} *2
  389.      gestaltHasSonic        = 20; {Sonic}                          *3
  390.      gestaltHasSCSI961      = 21; {Int. 53C96 SCSI}                *1
  391.      gestaltHasSCSI962      = 22; {Ext. 53C96 SCSI}                *1
  392.      gestaltHasDAFBVideo    = 23; {DAFB Video}                     *3
  393.      gestaltHasUniversalROM = 24; {Universal ROM}                  *17
  394.      gestaltHas???          = 27; {set on PowerPC prototype and C660AV,
  395.                                    DSP?, AWAC?}
  396.      gestaltHas???          = 30; {set on C660AV, DSP?}
  397.      See for more information the TN "M.OV.GestaltSysenvirons" (OV 16).
  398. help (System [7.0])
  399.      gestaltHelpMgrAttr (addition)
  400.  
  401.      gestaltHelpMgrExtensions = 1; {help mgr extensions are installed} *19
  402. icon (System [7.0])
  403.      gestaltIconUtilities (not listed)
  404.  
  405.      gestaltIconUtilities        = 'icon'; {Icon Utils attributes}
  406.      gestaltIconUtilitiesPresent = 0;
  407. intd (Powerbook Duo Enabler [1.0])
  408.      (System Enabler 111 [1.0])
  409.      (System Enabler 121 [1.0])
  410.      (System Enabler 131 [1.0])
  411.      (System Enabler 201 [1.0]))
  412.      gestaltInternalDiskAttr?
  413.      Returns information about the internal harddisk of PowerBook
  414.      computers.
  415.  
  416.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  417.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  418.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  419.      gestalt???               = 24;     {unknown, set on PB180}
  420. kbd  (System [6.0.4])
  421.      gestaltKeyboardType (additions)
  422.  
  423.      gestaltPwrBookADBKbd     = 12; {PowerBook ADB Keyboard}       *1
  424.      gestaltPwrBookISOADBKbd  = 13; {PowerBook ISO ADB Keyboard}   *1
  425.      gestaltAppleAdjustKeypad = 14, {Adjustable Keypad?}           *20
  426.      gestaltAppleAdjustADBKbd = 15, {Adjustable ADB Keyboard?}     *20
  427.      gestaltAppleAdjustISOKbd = 16, {Adjustable ISO ADB Keyboard?} *20
  428.  
  429.      Combinations of System Global KbdType and gestaltKeyboardType values
  430.      ======================================================================
  431.      KbdType    gestaltKeyboardType          KbdType    gestaltKeyboardType
  432.      (hex.)     (decimal)                    (hex.)     (decimal)
  433.      ----------------------------------------------------------------------
  434.        $03          1                          $0F         18
  435.        $13          2                          $12         19
  436.        $0B          3                          $13         20
  437.        $02          4                          $14         21
  438.        $01          5                          $15         22
  439.        $06          6                          $16         23
  440.        $07          7                          $17         24
  441.        $04          8                          $18         25
  442.        $05          9                          $19         26
  443.        $08         10                          $1A         27
  444.        $09         11                          $1B         28
  445.        $0C         12                          $1C         29
  446.        $0D         13                          $1D         30
  447.        $0E         14                          $1E         31
  448.        $10         15                          $1F         32
  449.        $11         16                          $20         33
  450.        $0A         17
  451.      ======================================================================
  452.      (Source: the PTCH 5 resource in the Hardware System Update 2.0
  453.               extension.)
  454.  
  455.      NOTE:
  456.      The Apple Adjustable Keyboard doesn't have its own gestalt keyboard
  457.      type defined with the currently available System Software. It changes
  458.      a low memory global but this doesn't change the Gestalt response.
  459.      Because of this programs which follow Apple's rules to determine the
  460.      keyboard type by using the Gestalt Mgr may not function properly.
  461.      This problem is corrected by the Hardware System Update 2.0 and later.
  462. mach (System [6.0.4]) INF
  463.      gestaltMachineType (additions)
  464.  
  465.      RELEASED
  466.      gestaltQuadra900          =  20; {Macintosh Quadra 900}     *1
  467.      gestaltPowerBook170       =  21; {Macintosh PowerBook 170}  *1
  468.      gestaltQuadra700          =  22; {Macintosh Quadra 700}     *1
  469.      gestaltClassicII          =  23; {Macintosh Classic II}     *1
  470.      gestaltPowerBook100       =  24; {Macintosh PowerBook 100}  *1
  471.      gestaltPowerBook140       =  25; {Macintosh PowerBook 140}  *1
  472.      gestaltQuadra950          =  26; {Macintosh Quadra 950}     *1
  473.      gestaltMacLCIII           =  27; {Macintosh LC III}
  474.      gestaltPowerBook210       =  29; {Macintosh PowerBook 210}
  475.      gestaltMacCentris650      =  30; {Macintosh Centris 650}
  476.      gestaltPowerBook230       =  32; {Macintosh PowerBook 230}
  477.      gestaltPowerBook180       =  33; {Macintosh PowerBook 180}
  478.      gestaltPowerBook160       =  34; {Macintosh PowerBook 160}
  479.      gestaltMacQuadra800       =  35; {Macintosh Quadra 800}
  480.      gestaltMacQuadra650?      =  36; {Macintosh Quadra 650}
  481.      gestaltMacLCII            =  37; {Macintosh LC II}
  482.      gestaltMacPowerBookDuo250 =  38; {Macintosh PowerBook Duo 250}
  483.      gestaltMacIIvi            =  44; {Macintosh IIvi}
  484.      gestaltPerforma600        =  45; {Macintosh Performa 600}
  485.      gestaltMacIIvx            =  48; {Macintosh IIvx}
  486.      gestaltMacColorClassic    =  49; {Macintosh Color Classic}
  487.      gestaltPowerBook165c      =  50; {Macintosh PowerBook 165c}
  488.      gestaltMacCentris610      =  52; {Macintosh Centris 610}
  489.      gestaltMacQuadra610?      =  53; {Macintosh Quadra 610}
  490.      gestaltPowerBook145       =  54; {Macintosh PowerBook 145 & 145b}
  491.                                       {145B has few differences with 145}
  492.      gestaltMacLC520           =  56; {Macintosh LC 520}
  493.      gestaltMacCentris660AV    =  60; {Macintosh Centris 660AV}
  494.      gestaltPerforma460        =  62; {Macintosh Performa 460}
  495.      gestaltPowerBook180c      =  71; {Macintosh PowerBook 180c}
  496.      gestaltMacPowerBookDuo270?=  77; {Macintosh PowerBook Duo 270}
  497.      gestaltMacQuadra840AV     =  78; {Macintosh Quadra 840AV}
  498.      gestaltPerforma550        =  80; {Macintosh Performa 550}
  499.      gestaltPowerBook165?      =  84; {Macintosh PowerBook 165}
  500.      gestaltMacintoshTV        =  88; {Macintosh TV}
  501.      gestaltMacLC475           =  89; {Macintosh LC 475}
  502.      gestaltMacQuadra605?      =  94; {Macintosh Quadra 605}
  503.  
  504.      Exceptions with systems prior to System 7.1:
  505.      gestaltMacLCII            =  19; {Macintosh LC & LC II}
  506.                                       {LC has MC68020, LC II has MC68030}
  507.      gestaltPowerBook145       =  25; {Macintosh PowerBook 140 & 145}
  508.                                       {processor speed is only difference}
  509.                                       {use GetCPUSpeed from Power Mgr?}
  510.  
  511.      Released unknown
  512.      All other released macs and not listed here! I can't keep up with
  513.      the new releases... Can you?
  514.  
  515.      Equivalents
  516.      Color Classic II          = gestaltMacColorClassic? (sold in Japan?)
  517.      Performa 200              = gestaltClassicII
  518.      Performa 400              = gestaltMacLCII
  519.      Performa 405              = gestaltMacLCII
  520.      Performa 410              = gestaltMacLCII
  521.      Performa 430              = gestaltMacLCII
  522.      Performa 450              = gestaltMacLCIII
  523.      Performa 466              = gestaltMacLCIII
  524.      Performa 467              = gestaltMacLCIII
  525.      Performa 475              = gestaltMacLC475
  526.      Performa 476              = gestaltMacLC475
  527.      Performa 600              = gestaltMacIIvx
  528.      Performa 600CD            = gestaltMacIIvx
  529.      Quadra 660AV              = gestaltMacCentris660AV
  530.      Workgroup Server 60       = gestaltMacCentris610
  531.      Workgroup Server 80       = gestaltMacQuadra800
  532.      Workgroup Server 95       = gestaltQuadra950
  533.  
  534.  
  535.      UNRELEASED
  536.      gestalt???                = ???; {unknown, codename Pomona?}
  537.      gestalt???                = ???; {unknown, codename BlackBird?}
  538.      gestalt???                = ???; {unknown, two PowerBook Duo}
  539.      gestalt???                = ???; {unknown, PowerPC 603 PB Duo}
  540.      gestalt???                =  43; {unknown, pre-rel. Tempest/Cyclone}
  541.      gestalt???                =  75; {PowerPC prototype}
  542.      gestaltPowerBook520?      = ???; {Macintosh PowerBook 520}
  543.      gestaltPowerBook520c?     = ???; {Macintosh PowerBook 520c}
  544.      gestaltPowerBook540?      = ???; {Macintosh PowerBook 540}
  545.      gestaltPowerBook540c?     = ???; {Macintosh PowerBook 540c}
  546.      gestaltPowerBookLC?       = ???; {Macintosh PowerBook LC}
  547.      gestaltPowerBookDuo40a?   = ???; {Macintosh PowerBook Duo 40a}
  548.      gestaltPowerBookDuo40b?   = ???; {Macintosh PowerBook Duo 40b}
  549.      gestaltPowerBookLC?       = ???; {Macintosh PowerBook LC}
  550.      gestaltQuadra6100?        = ???; {Macintosh Quadra 6100}
  551.      gestaltQuadra6500?        = ???; {Macintosh Quadra 6500}
  552.      gestaltQuadra8500?        = ???; {Macintosh Quadra 8500}
  553.      gestaltPPC601?            = ???; {PowerPC? 601? value 75?}
  554.      gestaltPPC604?            = ???; {PowerPC? 604? value 100?}
  555.      gestaltPPC???             = 100; {PowerPC? ???}
  556.                                       {MachineNameStr: "PDM xxxx 66"}
  557.                                       {to protect the anonymous contributor}
  558.                                       {from being identified the part we}
  559.                                       {don't know the meaning of is replaced}
  560.                                       {by xxxx. PDM is the PPC codename}
  561.  
  562.      Equivalents
  563.      Performa 550              = gestaltMacLC520?
  564.      PPC Workgroup Server 60   = gestaltQuadra6100?
  565.      PPC Workgroup Server 80   = gestaltQuadra6500?
  566.      PPC Workgroup Server 95   = gestaltQuadra8500?
  567.  
  568.      NOTES:
  569.      The Performa 600 was originally planned to ship as Macintosh IIvm
  570.      but the name was changed because users thought 'vm' meant 'Virtual
  571.      Memory'. MOST system enablers (i.e. 001, 040, 065 & 201) still
  572.      contain this original name.
  573.  
  574.      The Developer Notes (available on ftp.apple.com and on the Developer
  575.      CD-ROM Series, amongst others) about Macintosh models provide in
  576.      several cases wrong or incomplete information regarding the machine
  577.      type returned by the Gestalt Manager.
  578.  
  579.      On Macintosh Performas, the Machine Name STR# resource will always
  580.      return the string "Macintosh" (not "Macintosh Performa 450" or
  581.      "Performa 450").  On all other Macintoshes, the string will return
  582.      the correct name. (Mark Dawson)
  583.  
  584.      All system enablers have a STR# resource -16395 (kMachineNameStrID)
  585.      included to replace the one in the System file. In most cases this
  586.      resource lists the same Macintosh names as the original one in
  587.      System 7.1 and adds the names of the machines the enabler is used for.
  588.      But some only list the machines the enabler is used with.
  589.      Therefore, if you want to display all Macintosh names you can't
  590.      rely on this resource anymore.
  591.      Using the archive mail server you can obtain a ResEdit file with the
  592.      complete machine name string resource. The path to use is
  593.          get src/machname-str.sit.hqx
  594.      I will keep this one up-to-date along with the changes in this 'mach'
  595.      entry. (Rene Ros)
  596.      
  597.      (Main source equivalents and unreleased machines:
  598.       MacFacts Two by J.D.S. Babcock <jdsb@ee.duke.edu>,
  599.       used with permission)
  600. malr (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  601.      gestaltSMPMailerVersion
  602.      Returns the SMP Mailer version as INTEGER.
  603.  
  604.      gestaltSMPMailerVersion = 'malr';
  605. micn (System [6.0.4]) INF
  606.      gestaltMachineIcon (addition)
  607.  
  608.      NOTE:
  609.      The icon resource ID returned is based on the gestaltMachineType
  610.      response which is used as an index into a table. This table of
  611.      resource IDs differs with most System Software versions (and
  612.      enablers). If you really want to know the icon resource ID of a
  613.      machine which is not the current machine you have the following
  614.      options:
  615.      - Write a GDEF to replace the 'mach' selector, let this GDEF return
  616.        the original gestaltMachineType unless a certain selector exists.
  617.        Create this selector with the GestaltValue code and make it loop
  618.        from 1 to the number of items in the STR# kMachineNameStrID
  619.        resource, let the custom GDEF return this as the machine type so
  620.        the gestaltMachineIcon selector will use this to look up the icon
  621.        resource ID. Then remove the GestaltValue selector and restore the
  622.        original gestaltMachineType selector.
  623.      - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
  624.        GDEF a few bytes further (and thus skipping the gestalt call using
  625.        the gestaltMachineType selector), emulate a genuine call to Gestalt
  626.        by setting the A0 (response, the machineType you want) and
  627.        D0 (result) registers correct.
  628.      - Determine the start of the table, which is located in memory before
  629.        the entrypoint of the gestaltMachineIcon GDEF code, and calculate
  630.        the offset to the icon resource ID you need. If you want code which
  631.        does this, you can contact me (Rene Ros) an I will sent you some
  632.        Pascal source code.
  633.      (David Greenspon, Michael Hecht and Rene Ros)
  634. misc (System [6.0.5])
  635.      gestaltMiscAttr (addition)
  636.  
  637.      gestaltBootGlobals = 1; {Boot Globals} *8
  638. mixd (System? [???]) *25
  639.      gestaltMixedMode (not listed)
  640.      Returns information about the Mixed Mode Manager?
  641.  
  642.      gestaltMixedMode = 'mixd';
  643. mmu  (System [6.0.4])
  644.      gestaltMMUType (addition)
  645.  
  646.      gestalt68040MMU = 4; {68040/68LC040 built-in} *2
  647.      gestaltEMMU1    = 5; {Emulated MMU type 1, PowerPC prototypes MMU} *25
  648. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  649.      gestaltNuBusSlotCount (not listed)
  650.      Returns count of NuBus slots.
  651.  
  652.      gestaltNuBusSlotCount = 'nubs';
  653. ocet (PowerTalk Manager ext [1.0?], part of System 7.1 Pro and System 7.5)
  654.      gestaltOCEToolboxVersion
  655.      Returns the versions of the S&F Server and the OCE Toolbox as BCD.
  656.  
  657.      gestaltOCEToolboxVersion = 'ocet';
  658.      gestaltOCETB             = $0100;  {current OCE Toolbox version 1.0}
  659.      gestaltSFServer          = $0100;  {current S&F Server version 1.0}
  660.  
  661.      NOTE:
  662.      The high order word will represent the S&F Server version number, and
  663.      the low order the OCE Toolbox version number both as BCD?.
  664.      These will be zero until the component is up and running.
  665. oceu (PowerTalk Manager ext [1.0?], part of System 7.1 Pro and System 7.5)
  666.      gestaltOCEToolboxAttr
  667.  
  668.      gestaltOCEToolboxAttr       = 'oceu';
  669.      gestaltOCETBPresent         = $1;      {OCE toolbox is present,}
  670.                                            {not running}
  671.      gestaltOCETBAvailable       = $2;     {OCE toolbox is running and}
  672.                                            {available}
  673.      gestaltOCESFServerAvailable = $4;     {S&F Server is running and}
  674.                                            {available}
  675.  
  676.      NOTE:
  677.      Any (future) remaining OCE attributes may not be established
  678.      correctly until the attribute gestaltOCETBAvailable is set.
  679. os   (System [6.0.4, 7.0 and later])
  680.      {Process Manager INIT ext [???], part of System 7.1 Pro and
  681.                                       System 7.5 ?)
  682.      gestaltOSAttr (addition)
  683.  
  684.      gestaltSkiaGlobalsSwitched  =  9; {???, set on PowerPC and Q840AV} *25
  685.      gestaltBgndMouseDownSupport = 10; *20
  686.      gestalt???                  = 11; {set on PowerPC prototype (ID#100)}
  687.      
  688.      NOTE:
  689.      The header file which lists the gestaltSkiaGlobalsSwitched bit says
  690.      this:
  691.      /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
  692.      
  693.      "Skia" is probably the code name for QuickDraw GX since MacsBug uses
  694.      it for trap $A832, which is the main QuickDraw GX trap.
  695.      (Lawrence D'Oliveiro)
  696. osyv (sysvINIT by T. Tanaka, Apple Computer Japan Inc.) INF
  697.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  698.      available on Developer CD-ROM Series) replaces the standard 'sysv'
  699.      Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
  700.      installs the 'osyv' selector which uses the replaced GDEF. *13
  701. pcxg (System? [???]) *20/25
  702.      gestaltPCXAttr (not listed)
  703.      Returns information about PC Exchange.
  704.  
  705.      gestaltPCXAttr            = 'pcxg';
  706.      gestaltPCXHas8and16BitFAT = 0; {PC Exchange supports both 8 and}
  707.                                     {16 bit FATs}
  708.      gestaltPCXHasProDOS       = 1; {PC Exchange supports ProDOS}
  709. ppc  (System [7.0])
  710.      gestaltPPCToolboxAttr (addition)
  711.      The first thing that is confusing is that, unlike other selectors
  712.      returning attributes, the responses are not bit values, but bit masks.
  713.      This means you simply AND the value with the response to test the bit.
  714.      The second thing that is confusing is how to interpret
  715.           gestaltPPCToolboxPresent = $0x0000.
  716.      What this means is that if the PPC toolbox is present, but has not
  717.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  718.      returns $0x0000. In reality, PPCInit gets called by the Process
  719.      Manager before any applications get launched, so no applications will
  720.      actually see this response. (Dave Radcliffe)
  721.  
  722.      gestaltPPCToolboxAttr      = 'ppc ';
  723.      gestaltPPCToolboxPresent   = $0x0000; {Requires PPCInit to be called}
  724.      gestaltPPCSupportsIncoming = $0x0001; {Deny incoming net requests}
  725.      gestaltPPCSupportsOutGoing = $0x0002; {Deny outgoing net requests}
  726.      gestaltPPCSupportsRealTime = $0x1000; {Supports real-time delivery}
  727. proc (System [6.0.4])
  728.      gestaltProcessorType (addition)
  729.  
  730.      gestalt68040   = 5; *2
  731.  
  732.      NOTE:
  733.      The 68LC040 responds as type gestalt68040 but doesn't has a FPU. The
  734.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  735.      just checking the machineType or the processorType isn't enough.
  736.      (Dave Radcliffe)
  737. prpv (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  738.      gestaltSDPPromptVersion
  739.      Returns the SDP Prompt version as INTEGER.
  740.  
  741.      gestaltSDPPromptVersion = 'prpv';
  742. qd   (System [6.0.4])
  743.      gestaltQuickDrawVersion (addition)
  744.  
  745.      Possible Combinations of ROM Versions and System Software Versions
  746.      ======================================================================
  747.      ROM Class             System Version         Gestalt Value
  748.      ----------------------------------------------------------------------
  749.      Black-and-white class <  7.0                 gestaltOriginalQD
  750.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  751.                                               gestaltSystemVersion >= $0700
  752.  
  753.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  754.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  755.                            32-Bit QD INIT 1.0
  756.                            6.0.5-6.0.8 and        gestalt32BitQD12
  757.                            32-Bit QD INIT 1.2
  758.                            >= 7.0                 gestalt32BitQD13
  759.  
  760.      ci class              6.0.4                  gestalt32BitQD + 1
  761.      (ROM > 256K)          6.0.5-6.0.8            gestalt32BitQD12
  762.                            >= 7.0                 gestalt32BitQD13
  763.      ======================================================================
  764.      (Source: Develop Issue 14, June 1993)
  765.  
  766.      NOTE:
  767.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  768.      $0x0201 as respone value and doesn't have a constant defined.
  769. qdrw (System [7.0])
  770.      gestaltQuickDrawFeaturesAttr (not listed)
  771.  
  772.      gestaltQuickDrawFeaturesAttr = 'qdrw'; *2
  773.      gestaltHasColor              = 0;      *2
  774.      gestaltHasDeepGWorlds        = 1;      *2
  775.      gestaltHasDirectPixMaps      = 2;      *2
  776.      gestaltHasGrayishTextOr      = 3;      *2
  777.  
  778.      NOTE:
  779.      There is a bug in the 'qdrw' selector that causes it to report that
  780.      Color QuickDraw is always present, even on machines that don't support
  781.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  782.      Use SysEnvirons instead or try this:
  783.        long qdVersion = 0;
  784.        gHasColorQuickDraw = (Gestalt(gestaltQuickdrawVersion,&qdVersion)
  785.                              == noErr) && (qdVersion >= gestalt8BitQD);
  786. rbv  (System [6.0.4, discontinued?]) *20
  787.      gestaltRBVAddr (not listed)
  788.  
  789.      gestaltRBVAddr = 'rbv ';
  790. rtmr (System? [???])
  791.      gestaltRealtimeMgrAttr (not listed)
  792.      Returns information about the Realtime Manager.
  793.  
  794.      gestaltRealtimeMgrAttr    = 'rtmr';
  795.      gestaltRealtimeMgrPresent = 0;
  796. rsrc (System [should work since 7.0?])
  797.      gestaltResourceMgrAttr (addition)
  798.  
  799.      gestalt??? = 1; {unknown}
  800.  
  801.      NOTE:
  802.      Under System 7, bit 0 that tells if you have partial resource support
  803.      doesn't work right. The selector is undefined under System 7.0 and
  804.      7.0.1 even though the partial resource calls are available. This has
  805.      been acknowledged by Apple.
  806.      (Michael Hecht, Quinn)
  807. sccr (System [6.0.4, discontinued]) *20
  808.      gestaltSCCReadAddr (not listed)
  809.      Returns the address of SCC read ports.
  810.  
  811.      gestaltSCCReadAddr = 'sccr';
  812. sccw (System [6.0.4, discontinued]) *20
  813.      gestaltSCCWriteAddr (not listed)
  814.      Returns the address of SCC write ports.
  815.  
  816.      gestaltSCCWriteAddr = 'sccw';
  817. scri (System [6.0.4])
  818.      gestaltScriptMgrVersion (addition)
  819.  
  820.      Version numbers for the Script Manager
  821.      ======================================================================
  822.      System Version       Script Mgr           Script Mgr          Version
  823.                           (older ROMs)+        (newer ROMs)        format
  824.      ----------------------------------------------------------------------
  825.      6.0.3 and earlier    <= $20F              N.A.                binary
  826.      6.0.4 Roman          $211                 $215                  "
  827.      6.0.4 non-Roman      $212                 $216                  "
  828.      6.0.5                $213                 $217 (=2.23)          "
  829.  
  830.      6.0.7                $230                 $231                BCD
  831.      J-6.0.7.1            $230                 $231                 "
  832.      6.0.8                $230                 $231                 "
  833.      6.1 non-Roman        $240                 $241                 "
  834.      7.0                  $700                 $700                 "
  835.      7.0.1 Roman          $701                 $701                 "
  836.      7.0.1 non-Roman      $701                 $701                 "
  837.      7.1                  $710                 $710                 "
  838.      
  839.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  840.      ======================================================================
  841.      (Source: Inside Macintosh Text)
  842.  
  843. sdvr (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  844.      gestaltSDPStandardDirectoryVersion
  845.      Returns the SDP Standard Directory version as INTEGER.
  846.  
  847.      gestaltSDPStandardDirectoryVersion = 'sdvr';
  848. slot (System [6.0.4, 6.0.5, discontinued])
  849.      gestaltSlotAttr (not listed)
  850.      Returns information about the Slot Manager.
  851.  
  852.      gestaltSlotAttr            = 'slot';
  853.      gestaltSlotMgrExists       = 0;
  854.      gestaltNuBusPresent        = 1;
  855.      gestaltSESlotPresent       = 2;
  856.      gestaltSE30SlotPresent     = 3;
  857.      gestaltPortableSlotPresent = 4;
  858. slt1 (System [6.0.4, 6.0.5, discontinued])
  859.      gestaltFirstSlotNumber (not listed)
  860.      Returns first slot number.
  861.  
  862.      gestaltFirstSlotNumber = 'slt1';
  863. sltc (System [6.0.8?])
  864.      gestaltNuBusConnectors (addition)
  865.  
  866.      NOTE:
  867.      This selector does not return information about the Macintosh IIsi
  868.      slot.
  869. snd  (System [6.0.4])
  870.      gestaltSoundAttr (additions)
  871.  
  872.      gestaltSoundReserved       =  2;
  873.      gestaltPlayAndRecord       =  6; {built-in hardware can play and}
  874.                                       {record simultaneously} *19/20
  875.      gestalt16BitSoundIO        =  7; {sound hardware can play and record}
  876.                                       {16-bit samples} *20
  877.      gestaltStereoInput         =  8; {sound hardware can record stereo}*20
  878.      gestaltLineLevelInput      =  9; {sound input port requires}
  879.                                       {line level} *20
  880.      gestaltSndPlayDoubleBuffer = 10; {play from disk available} *20
  881.      gestaltMultiChannels       = 11; {multiple channel support} *19/20
  882.      gestalt16BitAudioSupport   = 12; {16 bit audio data supported} *20
  883.  
  884.      NOTE:
  885.      If the gestaltSndPlayDoubleBuffer flag is not set you can check for
  886.      the gestaltHasASC flag with the gestaltHardwareAttr selector. If this
  887.      is true both SndPlayDoubleBuffer and SndStartFilePlay are present. *24
  888. spsl (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  889.      gestaltSMPSPSendLetterVersion
  890.      Returns the SMP SendLetter version as INTEGER.
  891.  
  892.      gestaltSMPSPSendLetterVersion = 'spsl';
  893. stdf (System [7.0])
  894.      gestaltStandardFileAttr (additions by Macintosh Easy Open)
  895.  
  896.      gestaltStandardFileTranslationAware = 1; *12/20
  897.      gestaltStandardFileHasColorIcons    = 2; *12/20/25
  898. sysa (System [7.1 on PowerPC prototype?]) *20
  899.      gestaltSysArchitecture (not listed)
  900.  
  901.      gestaltSysArchitecture = 'sysa';
  902.      gestalt68k             = 1;
  903.      gestaltPowerPC         = 2;
  904. sysv (System [6.0.4]) INF
  905.      gestaltSystemVersion (listed in IM VI; question)
  906.      Returns the version number of currently active System file in BCD.
  907.      Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
  908.      actually 6.0.8 in another way?
  909.      The hard way to change the result value is to change the PTCH resource
  910.      with ID# 0 in the System file. Change the word $07 at offset $0x00ED
  911.      to $08.
  912.  
  913.      System    Resource   Offset  Data
  914.      Version   Type  ID#
  915.      6.0.4     PTCH  0    0x005E   0604
  916.      6.0.8     PTCH  0    0x00EC   0607
  917.      7.0       PTCH  0    0x056E   0700
  918.      7.0.1     PTCH  0    0x0578   0701
  919.      7.1       PTCH  0    0x057C   0710
  920.  
  921.      NOTES:
  922.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  923.      versions return $0606. See the 'osyv' selector.
  924.      System J-6.0.7.1 returns $0609
  925.  
  926.      There are some system versions (like International System 6.0.8.1 or
  927.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  928.      7.0.1.
  929. tabl (System [6.0.4])
  930.      gestaltSelectorTable (not listed)
  931.      Returns a handle to the Gestalt selector table itself.
  932.  
  933.      gestaltSelectorTable = 'tabl';
  934.  
  935.      NOTE:
  936.      The Gestalt selector table is kept in a resizable block in the system
  937.      heap. The last item in the table is a dummy entry (INVALID), marked by
  938.      a selector OSType(MaxLongInt). (Marco Piovanelli, he has also some
  939.      snippet Pascal code to list all selectors)
  940. te   (System [6.0.5])
  941.      gestaltTextEditVersion (addition)
  942.  
  943.      Version numbers for TextEdit
  944.      ======================================================================
  945.      Returned value       New Features           System software   Hardware
  946.      ----------------------------------------------------------------------
  947.      gestaltUndefSelector Multistyled TE         before 6.0.4      all
  948.      gestaltTE1                                  6.0.4 Roman       IIci
  949.      gestaltTE2           New width              6.0.4 non-Roman   IIci
  950.                           measurement hook
  951.                           Script Mgr compatible
  952.      gestaltTE3                                  6.0.4 non-Roman   non-IIci
  953.      gestaltTE4           TEFeatureFlag          6.0.5             all
  954.      gestaltTE5           Text width             7.0               all
  955.                           measurement hook
  956.      ======================================================================
  957.      (Source: Inside Macintosh Text)
  958.  
  959. term (System [7.1])
  960.      gestaltTermMgrAttr (addition)
  961.  
  962.      gestaltTermMgrErrorString = 2; *20
  963. tsmv (System [7.1])
  964.      gestaltTSMgrVersion (not listed, not even in IM Text) *18
  965.      Returns Text Services Manager version in BCD.
  966.  
  967.      gestaltTSMgrVersion = 'tsmv';
  968. vers (System [6.0.4])
  969.      gestaltVersion (addition)
  970.  
  971.      The PowerPC prototype, C660AV and Q840AV use Gestalt Manager version 4.
  972. via1 (System [6.0.4, discontinued])
  973.      gestaltVIA1Addr (not listed)
  974.      Returns the address of VIA 1.
  975.  
  976.      gestaltVIA1Addr = 'via1';
  977. via2 (System [6.0.4, discontinued])
  978.      gestaltVIA2Addr (not listed)
  979.      Returns the address of VIA 2.
  980.  
  981.      gestaltVIA2Addr = 'via2';
  982. vm   (System [6.0.4])
  983.      gestaltVMAttr (replacement)
  984.  
  985.      gestaltVMPresent      = 0; {set; virtual memory present}
  986.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  987. wma. (System [7.0])
  988.      (Responder ext [2.0?])
  989.      gestaltResponderAttr (not listed)
  990.      Returns information about the Workstation Management Agent aka
  991.      Responder.
  992.  
  993.      gestaltResponderAttr    = 'wma.';
  994.      gestaltResponderPresent = 0;
  995. xttt (System [6.0.8])
  996.      gestaltExtToolboxTable (not listed)
  997.      Returns the base address of the Extended Toolbox trap table.
  998.  
  999.      gestaltExtToolboxTable = 'xttt';
  1000.  
  1001. Apple Additional Software
  1002. -------------------------
  1003. arb  (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
  1004.      gestaltArbitorAttr (not listed) *9
  1005.      Returns information about the Serial Port Arbitration.
  1006.  
  1007.      gestaltArbitorAttr             = 'arb ';
  1008.      gestaltSerialArbitrationExists = 0;{Serial Port Arbitration installed}
  1009. ascr (AppleScript ext [1.0]) 
  1010.      gestaltAppleScriptAttr
  1011.      Returns information about AppleScript.
  1012.  
  1013.      gestaltAppleScriptAttr    = 'ascr';
  1014.      gestaltAppleScriptPresent?= 0;      {AppleScript and OSA present?}
  1015.  
  1016.      NOTE:
  1017.      OSA is the Open Scripting Architecture. It is the layer upon which all
  1018.      scripting languages sit and the method by which applications call
  1019.      scripts. (Jon Pugh)
  1020. ascv (AppleScript ext [1.0])
  1021.      gestaltAppleScriptVersion
  1022.      Returns the version of AppleScript as NumVersion.
  1023.  
  1024.      gestaltAppleScriptVersion = 'ascv';
  1025. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *16
  1026.      gestaltAudioCDAccessVersion? (not listed)
  1027.      Returns Audio CD Access version in BCD.
  1028.  
  1029.      gestaltAudioCDAccessVersion? = 'aucd';
  1030.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1031. cltn (QuickDraw GX [1.0])
  1032.      gestaltCollectionMgrVersion (not listed)
  1033.      Returns the version of the Collection Manager as NumVersion.
  1034.  
  1035.      gestaltCollectionMgrVersion = 'cltn';
  1036.  
  1037.      NOTE:
  1038.      The Collection Manager is a set of routines for maintaining tagged
  1039.      collections of data; GX uses it to support the "tags" that you can
  1040.      attach to GX objects, for holding special data, including
  1041.      user-defined data. (Lawrence D'Oliveiro)
  1042. cmtc (ColorSync ext [?])
  1043.      gestaltColorMatchingVersion (not listed)
  1044.      According to the documentation, the value returned by this selector is
  1045.      $0x0100 if ColorSync is installed under System 6.0.7, or $0x0110 if
  1046.      ColorSync is installed under System 7. (Lawrence D'Oliveiro)
  1047.  
  1048.      gestaltColorMatchingVersion = 'cmtc';
  1049. cpkr (Color Picker ext [2.0?], part of ColorSync Software)
  1050.      gestaltColorPickerMgrAttr (not listed)
  1051.      Returns information about the Color Picker Manager.
  1052.  
  1053.      gestaltColorPickerMgrPresent? = 0?; (ColorPicker Mgr Present}
  1054.      (Marco Piovanelli, Lawrence D'Oliveiro)
  1055.  
  1056.      NOTE:
  1057.      Extension version 2.0a4 returns a response ($0x0001) which is
  1058.      according to the info above. Version 2.0a5 however returns $0x0100, is
  1059.      this an error?
  1060. drag (Macintosh Drag and Drop ext [1.0])
  1061.      gestaltDragMgrAttr *22
  1062.      Returns information about the Drag Manager.
  1063.  
  1064.      gestaltDragMgrAttr    = 'drag'; {Drag Manager attributes}
  1065.      gestaltDragMgrPresent = 0;      {Drag Manager is present}
  1066. gfxa (QuickDraw GX [1.0])
  1067.      gestaltGraphicsAttr (not listed)
  1068.      Returns information about the Graphics.
  1069.  
  1070.      gestaltGraphicsAttr        = 'gfxa'; { graphics attributes bits }
  1071.      gestaltGraphicsIsDebugging = 0;
  1072.      gestaltGraphicsIsLoaded    = 1;
  1073.  
  1074.      NOTE:
  1075.      The non-debugging version always seems to return 0 from this selector,
  1076.      even when a program using GX is currently running.
  1077. grfx (QuickDraw GX ext [1.0])
  1078.      gestaltGraphicsVersion (not listed)
  1079.      Returns the version of the Graphics as INTEGER.
  1080.  
  1081.      gestaltGraphicsVersion        = 'grfx'; {Gestalt version selector}
  1082.      gestaltCurrentGraphicsVersion = 16;     {supposed value returned}
  1083. hscd (High Sierra File Access ext [4.0], part of Apple CD-ROM Software) *16
  1084.      gestaltHighSierraFAVersion? (not listed)
  1085.      Returns High Sierra File Access version in BCD.
  1086.  
  1087.      gestaltHighSierraFAVersion? = 'hscd';
  1088.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1089. icmp (QuickTime ext [1.0])
  1090.      gestaltCompressionMgr (not listed)
  1091.      Returns Compression Manager version as Integer
  1092.  
  1093.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression} *6
  1094.                                      {manager is available}
  1095. kids (At Ease [1.0])
  1096.      ??? (not listed)
  1097.      Returns a handle to a structure holding information about At Ease.
  1098.  
  1099.      The official constant is not defined but the following code was
  1100.      published by Apple *21:
  1101.  
  1102.      #define kAtEaseGestalt    'kids'
  1103.      typedef struct {
  1104.        short  giVersion;         /* structure version */
  1105.        short  giIsActive;        /* true if at ease is currently running */
  1106.        short  giAutoCreateAlias; /* if true then auto create alias */
  1107.        short  giRequestFloppy;   /* if true then request floppy on new
  1108.                                     saves */
  1109.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  1110.                                     with applications */
  1111.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  1112.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  1113. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *16
  1114.      gestaltApplePhotoAccessVersion? (not listed)
  1115.      Returns Apple Phote Access version in BCD.
  1116.  
  1117.      gestaltApplePhotoAccessVersion? = 'kpcd';
  1118.  
  1119.      NOTE:
  1120.      The above is what the documentation says. However it seems to return
  1121.      always $FFFFFF7 as response.
  1122. mess (QuickDraw GX [1.0])
  1123.      gestaltMessageMgrVersion (not listed)
  1124.      Returns the version of the Message Manager as NumVersion.
  1125.  
  1126.      gestaltMessageMgrVersion = 'mess';
  1127.  
  1128.      NOTE:
  1129.      The Message Manager is an implementation of object-oriented-style
  1130.      message passing within an inheritance hierarchy, that can be used from
  1131.      non-OO languages.
  1132.      It is used by the GX printing system, to allow the customization of
  1133.      printing behaviour by letting applications (and developers of printing
  1134.      extensions) intercept messages sent to the printer driver.
  1135.      (Lawrence D'Oliveiro)
  1136. mtcp (MacTCP cp [1.1])
  1137.      gestaltMacTCPAttr? (not listed) *5
  1138.      Returns the version of MacTCP, if opened, as an index-value.
  1139.  
  1140.      Response     Version
  1141.         1          1.1
  1142.         2          1.1.1
  1143.         3          2.0
  1144.      If MacTCP is not opened a value of 0 is returned.
  1145.      No constants are defined in the documentation.
  1146.  
  1147.      gestaltMacTCPAttr?    = 'mtcp';
  1148.      gestaltMacTCPPresent? = 0;
  1149.      gestaltMacTCP11?      = 1;
  1150.      gestaltMacTCP111?     = 2;
  1151.      gestaltMacTCP2?       = 3;
  1152. pmgr (QuickDraw GX [1.0])
  1153.      gestaltPrintingMgrVersion (not listed)
  1154.      Returns the version of the QuickDraw GX Printing Manager as NumVersion.
  1155.  
  1156.      gestaltPrintingMgrVersion = 'pmgr';
  1157. qtim (QuickTime ext [1.0])
  1158.      gestaltQuickTime (addition to IM QuickTime)
  1159.      Returns QuickTime version as NumVersion.
  1160.  
  1161.      gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
  1162.  
  1163.      NOTES:
  1164.      The returned version is obtained from 'vers' resource ID# 1.
  1165.  
  1166.      If you install QuickTime under System 6, a major portion of the Alias
  1167.      Manager and FSSpec support is also added. But, QT doesn't implement
  1168.      the Gestalt selectors because the implementation is not complete. You
  1169.      must check for either Alias Mgr or QuickTime. (Michael Hecht)
  1170.      If QuickTime is present, assume you have an Alias Manager, subject to
  1171.      some limitations (NewAliasMinimalFromFullPath not present). Nearly all
  1172.      the FSSpec calls are available (except FSpExchangeFiles) in System 6
  1173.      when QuickTime is installed. See for more information Technical Note
  1174.      M.QT.MovieTB.Q&As (QT 510) and IM QuickTime.
  1175. scra (Macintosh Easy Open ext? [1.0]) *12
  1176.      gestaltScrapMgrAttr (not listed)
  1177.      Returns information about the Scrap Manager.
  1178.  
  1179.      gestaltScrapMgrAttr             = 'scra';
  1180.      gestaltScrapMgrTranslationAware = 0;
  1181.      gestaltTranslationMgrHintOrder  = 1; *20
  1182. snhw (System? [???])
  1183.      (Sound Manager ext [3.0])
  1184.      gestaltSoundHardware (not listed)
  1185.  
  1186.      gestaltSoundHardware = 'snhw';
  1187.      gestaltASC           = 'asc ';
  1188.      gestaltDSP           = 'dsp ';
  1189.      gestaltClassicSound  = 'clas';
  1190.      gestaltAWAC?         = 'awac'; {returned on PowerPC prototype}
  1191. strm (Remote Access Aliases [1.0], part of Apple Remote Access)
  1192.      gestaltRemoteAccessAttr *9 (not listed)
  1193.  
  1194.      gestaltRemoteAccessAttr    = 'strm';
  1195.      gestaltRemoteAccessExists  = 0; {RA Connection Interface is available}
  1196.      gestalt???                 = 1; {installed since ARA 2.0?}
  1197.      gestalt???                 = 3; {installed since ARA 2.0?}
  1198. teat (Macintosh Drag and Drop ext [1.0])
  1199.      gestaltTEAttr *22
  1200.      Returns information about the functions and capabilities of TextEdit.
  1201.  
  1202.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  1203.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  1204. thds (Thread Manager ext [1.1]) *15
  1205.      (QuickDraw GX ext [1.0?])
  1206.      gestaltThreadAttr (not listed)
  1207.      Returns information about the Thread Manager.
  1208.  
  1209.      gestaltThreadAttr           = 'thds'; {Thread Manager attributes}
  1210.      gestaltThreadsPresent       = 0;      {bit true if Threads present}
  1211.      gestaltSpecificMatchSupport = 1;      {bit true if Thread Mgr supp.}
  1212.                                            {exact match creation option}
  1213. ttsc (Text-To-Speech Manager ext [1.0?])
  1214.      gestaltSpeechAttr (listed in Speech Manager documentation)
  1215.      Returns information about the Speech Manager.
  1216.  
  1217.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attributes}
  1218.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  1219. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *16
  1220.      gestaltForeignFAVersion? (not listed)
  1221.      Returns Foreign File Access version in BCD.
  1222.  
  1223.      gestaltForeignFAVersion? = 'ufox';
  1224.  
  1225.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1226. xlat (Macintosh Easy Open ext [1.0]) *12
  1227.      gestaltTranslationAttr (not listed)
  1228.      Returns information about the Translation Manager.
  1229.  
  1230.      gestaltTranslationAttr      = 'xlat'; {Translation Manager}
  1231.      gestaltTranslationMgrExists = 0;      {TM present}
  1232.      gestalt???                  = 1;
  1233.  
  1234. Third Parties Software
  1235. ----------------------
  1236. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  1237.      gestaltSymbiontsTable
  1238.      Returns a pointer to a structure containing the size of the System
  1239.      Heap before and after loading the INITs.
  1240.  
  1241.      gestaltSymbionts = '!SYM';
  1242. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1243.      gestaltAfterDarkFolder *23
  1244.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  1245.      the 'After Dark Files' folder. See for more information the file
  1246.      AfterDarkGestalt.h which is available to you using the mail-archive
  1247.      server.
  1248.  
  1249.      gestaltAfterDarkFolder = 'ADfd';
  1250. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  1251.      gestaltAfterDarkAttr *23
  1252.      Returns a longword bitmask containing public information about
  1253.      After Dark.
  1254.  
  1255.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  1256.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  1257.      eSoundActive         = 1;      {AD has allocated a sound channel}
  1258.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  1259. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  1260.      gestaltApolloTable
  1261.      Returns a handle to an instance of a structure.
  1262.      See for more information the Programmers' Information chapter in the
  1263.      Apollo 1.0 documentation. (Jeremy Roussak)
  1264.  
  1265.      gestaltApolloTable = 'ApoL';
  1266. ASHI (Arashi app [???] by Juri Munkki)
  1267.      ???
  1268.      Returns information about the presence of Arashi by returning one (1)
  1269.      if loaded, and zero (0) when removed.
  1270. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  1271.      gestaltAutoBuildVersion
  1272.      Returns AutoBuild version as NumVersion.
  1273.  
  1274.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1275. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  1276.      Determines if there is mail (QuickMail). The response long word is 1
  1277.      if you have mail, and 0 if you don't.
  1278. CKI3 (AETracker cp [3.0] by C.K. Haun)
  1279.      gestaltAETrackerAddr
  1280.      This selector returns a pointer to the external interface routine for
  1281.      AETracker, details of which are in the AETracker interface guide.
  1282.      (C.K. Haun)
  1283.  
  1284.      gestaltAETrackerAddr = 'CKI3';
  1285. FrcP (Decor cp [1.0] by Francois Pottier)
  1286.      gestaltDecorAddr
  1287.      Returns a pointer to a structure which can be read or changed, and
  1288.      enables programmers to change the picture on the desktop.
  1289.  
  1290.      See for more information on how to use this structure the
  1291.      documentation included with Decor 1.0 or later.
  1292.  
  1293.      NOTE: The c is actually the option-c character (ASCII $8D).
  1294. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  1295.      gestaltGestaltVersion
  1296.      Returns the version of the application as NumVersion.
  1297.      GestaltValue is removed when application quits. Just for fun.
  1298.      (Roland Mansson)
  1299.  
  1300.      NOTE: The a is actually the option-u/a character (ASCII $8A).
  1301. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  1302.      Snippet code, see documentation. (See chapter 'Related Software'
  1303.      for availability).
  1304. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  1305.      Returns pointer to structure where collected information is stored.
  1306.  
  1307.      NOTE: In development, not yet available.
  1308. Lnch (Network Time cp [2.0] by Pete Resnick)
  1309.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  1310.      gestaltFirstLaunchAttr
  1311.      Returns info on whether the _Launch trap has been called by the
  1312.      System.
  1313.  
  1314.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  1315.      _Launch trap has been called since startup of the machine. All other
  1316.      bits are reserved and currently 0. Even if not installed at INIT time,
  1317.      Network Time will install the Gestalt selector if it is not already
  1318.      there when the control panel is opened and automatically set
  1319.      bit 0 to 1.
  1320.      68000 assembler source code is available for the INIT that installs
  1321.      the selector, and INIT resource -4048 from Network Time may be
  1322.      stolen (and renumbered as desired) and used in any INIT file as
  1323.      desired. (Pete Resnick)
  1324.  
  1325.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  1326.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  1327. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  1328.      gestaltNovellIPXVersion
  1329.      Returns the version of MacIPX as NumVersion.
  1330.      If the selector returns an error (i.e. no such selector?) then MacIPX
  1331.      is not installed. If the selector returns 0L then MacIPX is installed
  1332.      but the driver is not open. Any other values is the version.
  1333.      (Duane Murphy)
  1334.  
  1335.      gestaltNovellIPXVersion = 'NIPX';
  1336. NMBT (Attention cp [0.6] by Marco Piovanelli)
  1337.      gestaltAttentionAddr
  1338.      The response value returned is a pointer to a read-only parameter
  1339.      block in the system heap.
  1340.      See for more detailed information the ReadMe file included.
  1341. NTim (Network Time cp [2.0] by Pete Resnick)
  1342.      Returns information private to Network Time.
  1343. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  1344.      gestaltPwrSwitcherTable
  1345.      Returns a pointer to a private data structure (undocumented).
  1346. SAVC (AfterDark cp [2.0?] by Berkeley Systems, Inc.)
  1347.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  1348.      gestaltScreenSaverControl *23
  1349.      Returns a pointer to a procedure which allows controlling the screen
  1350.      saver. See for more information the file AfterDarkGestalt.h which is
  1351.      available to you using the mail-archive server.
  1352.  
  1353.      gestaltScreenSaverControl = 'SAVC';
  1354. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  1355.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  1356.      (Arashi app [???] by Juri Munkki)
  1357.      gestaltScreenSaverAttr *23
  1358.      Defined if a screen saver is installed.
  1359.  
  1360.      gestaltScreenSaverAttr    = 'SAVR';
  1361.      gestaltSaverTurnedOn      = 0; {saver enabled/disabled}
  1362.      gestaltSaverAsleep        = 1; {saver currently asleep}
  1363.      gestaltSaverDemoMode      = 2; {saver sleeping in demo mode}
  1364.      gestaltSaverPasswordMode  = 3; {saver sleeping in password-protected}
  1365.                                     {mode}
  1366.      gestaltAppDrawingDisabled = 4; {QD drawing disallowed between module}
  1367.                                     {animation frames}
  1368. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  1369.      kSDDelayCreator
  1370.      Returns a pointer to a data structure described in the documentation
  1371.      included with Shutdown Delay.
  1372.  
  1373.      kSDDelayCreator = 'SDdD';
  1374.  
  1375.      NOTE: The d is actually the option-shift v character (ASCII $D7).
  1376. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  1377.      gestaltStuffItSpaceSaverAddr
  1378.      Returns the address of the SpaceSaver "command module" which allows
  1379.      developers to access all the functions of SpaceSaver.
  1380.      (Leonard Rosenthol)
  1381.  
  1382.      gestaltStuffItSpaceSaverAddr = 'SLip';
  1383. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  1384.      The value returned is a pointer to a Monitor information block. *14
  1385.      (Scott Bronson)
  1386. YeHa (SpeedyFinder7 cp [1.5.4?-1.5.9] by Victor Tan)
  1387.      The structure to which the Gestalt selector refers changes almost
  1388.      invariably from version to version of SF7. Should someone work out
  1389.      parts of the structure of the selector keep in mind that it will
  1390.      almost certainly change in the next minor release and definitely with
  1391.      the next major release. (Victor Tan)
  1392.  
  1393. Unknown Gestalt Selector Codes
  1394. ==============================
  1395. The following sections list selector codes of which the meaning is unknow.
  1396.  
  1397. Apple System Software
  1398. ---------------------
  1399. aint (System? [???])
  1400.      NOTE: Returns 2 on a C660AV and Q840AV.
  1401. apml (PowerTalk Manager ext [1.0?], part of System 7.1 Pro and System 7.5)
  1402. bast (System [7.1P])
  1403. batt (Powerbook Duo Enabler [1.0])
  1404.      (System Enabler 111 [1.0])
  1405.      (System Enabler 121 [1.0])
  1406.      (System Enabler 131 [1.0])
  1407.      (System Enabler 201 [1.0]))
  1408.      Returns information about the PowerBook battery?
  1409.      
  1410.      gestaltBatteryAttr?      = 'batt';
  1411.      gestalt???               = 0;
  1412.      gestaltAdapterConnected? = 1;
  1413.      gestalt???               = 2;
  1414. brcn (Screen? cp [1.0?] on Color Classic)
  1415. brcN (Energy Save cp [1.0?], part of Monitor Energy Saver)
  1416. bugy (32-bit System Enabler [1.0])
  1417.      (Hardware System Update ext [1.0])
  1418.      (Sound Manager ext [3.0])
  1419.      (System enabler 065)
  1420.      gestaltEnablerAttr?
  1421.  
  1422.      gestaltEnablerAttr?                  =  'bugy'; ?
  1423.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  1424.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  1425.      gestalt???                           =  2; {unknown, Hardware Upd.}
  1426.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  1427.      gestalt???                           =  4; {unknown, Hardware Upd.}
  1428.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  1429.      gestalt???                           =  6; {unknown, Hardware Upd.}
  1430.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  1431.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  1432.      gestalt???                           = 11; {unknown, Hardware Upd.}
  1433.      gestalt???                           = 12; {unknown, Hardware Upd.}
  1434.      gestalt???                           = 13; {unknown, Hardware Upd.}
  1435.      gestalt???                           = 14; {unknown, Hardware Upd.}
  1436.      gestalt???                           = 15; {unknown, Hardware Upd.}
  1437.      gestalt???                           = 16; {unknown, Hardware Upd.}
  1438.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd
  1439.                                              gestaltKeyboardType response?}
  1440.      gestalt???                           = 18; {unknown, Hardware Upd.}
  1441.      gestalt???                           = 24; {unknown, ???}
  1442.      gestalt???                           = 25; {unknown, ???}
  1443.      gestalt???                           = 26; {unknown, ???}
  1444.      gestalt???                           = 28; {unknown, ???}
  1445.      gestalt???                           = 31; {unknown, ???}
  1446.  
  1447.      WARNING:
  1448.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  1449.      Editor to peek into the 32-bit System Enabler and the Hardware System
  1450.      update. Please check if I'am right. You should be able to find answers
  1451.      in the INIT resource of the Hardware Update and the names of the PTCH
  1452.      resources in version 1.0 were also useful...
  1453.      The System Enablers (for new Macintosh models) don't seem to install
  1454.      or change any Gestalt selector to indicate their presence.
  1455. bugz (System (Tuna Helper INIT rsrc) [7.0]/Tune-up ext)
  1456. cate (Catalogs Extension? ext [???], part of System 7.1 Pro and System 7.5 ?)
  1457. cfmg (System [7.1 on PowerPC prototype])
  1458. clbv (PowerTalk ext [1.0?], part of System 7.1 Pro and System 7.5)
  1459. ctxm (???)
  1460. dude (Powerbook Duo Enabler [1.0])
  1461.      (System Enabler 111 [1.0])
  1462.      (System Enabler 121 [1.0])
  1463.      (System Enabler 131 [1.0])
  1464.      (System Enabler 201 [1.0]))
  1465. dudi (Powerbook Duo Enabler [1.0])
  1466.      (System Enabler 111 [1.0])
  1467.      (System Enabler 121 [1.0])
  1468.      (System Enabler 131 [1.0])
  1469.      (System Enabler 201 [1.0]))
  1470. fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1471.      Installed by Finder extension?
  1472. fnd  (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1473.      Installed by Finder extension?
  1474. fnd& (Finder?, System? [7.1 on PowerPC prototype?])
  1475.      NOTE: The & is actually the option-shift-a character (ASCII $E5).
  1476. fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1477.      Installed by Finder extension?
  1478. fnda (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1479.      NOTE: The a is actually the option-a character (ASCII $8C).
  1480. fndc (Finder?, System? [7.1 on PowerPC prototype?])
  1481. fndn (Finder?, System? [7.1 on PowerPC prototype?])
  1482.      NOTE: The n is actually an unknown key-combination (ASCII $96).
  1483. FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1484.      Installed by Finder extension?
  1485. fnd* (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1486.      Installed by Finder extension?
  1487.  
  1488.      NOTE: The * is actually the shift-6 character (ASCII $F6).
  1489. gntz (System [7.1 on PowerPC prototype])
  1490. heap (System [7.1 on PowerPC prototype])
  1491.      Bits 1 and 5 set.
  1492. hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1493. idsp (???)
  1494. mbox (Mailbox Extension? ext [???], part of System 7.1 Pro and System 7.5 ?)
  1495. mjik (MenuMagic ext [1.0], part of System 7.1 Pro and System 7.5)
  1496. port (Powerbook Duo Enabler [1.0])
  1497.      (System Enabler 111 [1.0])
  1498.      (System Enabler 121 [1.0])
  1499.      (System Enabler 131 [1.0])
  1500.      (System Enabler 201 [1.0]))
  1501. reno (Apple Help? ext? [???], part of System 7.1 Pro and System 7.5 ?)
  1502. scsi (System [7.1?])
  1503.      NOTE: Returns 3 on PowerPC prototype and Centris 660AV
  1504. shal (System [7.1?])
  1505.      NOTE: Returns 2 on PowerPC prototype and 1 on Centris 660AV
  1506. udsk (System [7.1 on PowerPC prototype])
  1507. udsv (System [7.1 on PowerPC prototype])
  1508. vmbs (System, Virtual Memory enabled [7.0])
  1509.      gestaltVMBackingStoreRef? (not listed)
  1510.      Returns the file reference number of the Virtual Memory storage file.
  1511.  
  1512.      gestaltVMBackingStoreRef? = 'vmbs';
  1513. vmcl (System, VM on [7.0])
  1514. OSType(7) (System [6.0.4])
  1515.      Returns LongInt('carl') and a result code of noErr.
  1516. OSType(13) (System [6.0.4])
  1517.      Returns LongInt('bbmc') and a result code of noErr.
  1518.  
  1519. Apple Additional Software
  1520. -------------------------
  1521. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  1522. admn (AppleShare Admin appl [3.0])
  1523.      gestaltASAdminAttr?
  1524.  
  1525.      gestaltASAdminAttr?    = 'admn';
  1526.      gestaltASAdminPresent? = 0;
  1527. afps (AppleShare File Server? app? [4.0?])
  1528.      Bit 0 and 16 set.
  1529. asps (AppleShare Print Server appl [3.0])
  1530.      gestaltASPrintServerAttr?
  1531.  
  1532.      gestaltASPrintServerAttr?    = 'asps';
  1533.      gestaltASPrintServerPresent? = 0;
  1534. AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
  1535. bART (MacCheck app [1.0])
  1536. BaRT (MacCheck app [1.0])
  1537. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  1538.  
  1539.      NOTES:
  1540.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  1541.      translated differently by Apple Computer, Inc.
  1542.  
  1543.      I think 'comp' stands for 'composite', as the INIT contains patches to
  1544.      the Font Manager needed to handle 'composite font suitcases'.
  1545.      (Marco Piovanelli)
  1546. doub (WorldScript II ext [???], part of KanjiTalk7)
  1547.      gestaltDoubleByteScriptVersion?
  1548.      Returns the WorldScript II version as BCD?
  1549.  
  1550.      gestaltDoubleByteScriptVersion? = 'doub';
  1551.  
  1552.      NOTE:
  1553.      This selector seems to be installed by WorldScript II (the
  1554.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  1555.      Korean and Traditional Chinese). Known returned value is $0x0710.
  1556.      (Marco Piovanelli)
  1557. intD (??? [???])
  1558.  
  1559.      NOTE:
  1560.      This is a mystery selector.  It isn't installed by any software, as
  1561.      far as I know, but the Finder 7.1 checks for this selector in certain
  1562.      situations. (Marco Piovanelli)
  1563. iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software 5.0)
  1564.      gestaltISO9660FAVersion? (not listed)
  1565.      Returns ISO 9660 File Access version in BCD?.
  1566.  
  1567.      gestaltISO9660FAVersion? = 'iscd';
  1568. fdbk (Speech Setup cp? [???], part of PlainTalk)
  1569. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  1570. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  1571. hgfd (AppleShare File Server appl [3.0])
  1572.      gestaltASFileServerAttr?
  1573.  
  1574.      gestaltASFileServerAttr?    = 'hgfd';
  1575.      gestaltASFileServerPresent? = 0;
  1576. lstk (Speech Setup cp? [???], part of PlainTalk)
  1577. ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
  1578.      gestaltLinkToolVersion?
  1579.      Returns the version of the Link Tool Manager as NumVersion?
  1580.  
  1581.      gestaltLinkToolVersion? = 'ltma';
  1582.  
  1583.      NOTE:
  1584.      The only value I've seen returned was $02002008, which would mean
  1585.      '2.0a8' which was not correct since the 'vers' recource said '2.0f0'.
  1586.      This value is hardcoded in the .LTM Driver resource. (Rene Ros)
  1587. mash (System [7.1P?]/At Ease [1.0?])
  1588. mfdr (At Ease [1.0])
  1589. ptlk (Speech Setup cp? [???], part of PlainTalk)
  1590. Remt (AutoRemounter cp [???])
  1591. slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
  1592. sndx (Sound Manager ext [3.0]?)
  1593.      gestaltSoundMgrAttr?
  1594.  
  1595.      gestaltSoundMgrAttr?    = 'sndx'?;
  1596.      gestaltSoundMgrPresent? = 0?
  1597. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  1598. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  1599. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  1600.      gestaltInlineExtensionAttr?
  1601.      Returns information about the Inline Extension, if present.
  1602.  
  1603.      gestaltInlineExtensionAttr?    = 'tmTE';
  1604.      gestaltInlineExtensionPresent? = 0;
  1605. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  1606.      gestaltInlineExtensionVersion?
  1607.      Returns the version of the Inline Extension as BCD (?).
  1608.  
  1609.      gestaltInlineExtensionVersion? = 'tmTV';
  1610.  
  1611.      NOTE: Known returned value is $0x0100.
  1612.  
  1613. Third Parties Software
  1614. ----------------------
  1615. Especially the Third Party selectors may change with every new release and
  1616. are therefore only listed in the 'known selectors' part when the author has
  1617. described the structure in the documentation or by email to me.
  1618.  
  1619. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  1620. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1621.      NOTE:
  1622.      Not installed by AfterDark but the GDEF indicates it is able to return
  1623.      a response.
  1624. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1625.      NOTE:
  1626.      Not installed by AfterDark but the GDEF indicates it is able to return
  1627.      a response.
  1628. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1629.      NOTE:
  1630.      Not installed by AfterDark but the GDEF indicates it is able to return
  1631.      a response.
  1632. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  1633. AP05 (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
  1634.       by Insignia Solutions Inc.
  1635. AP17 (???)
  1636. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  1637. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1638. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  1639. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  1640. bMRN (Super Boomerang cp [4.0?] part of NOW Utilities 4.0.1p package
  1641.       by NOW Software)
  1642. CDJR (ExtendedAppleMenu [???] by Chris Derossi)
  1643. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  1644. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  1645. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  1646. DFlh (DiskFlash cp [1.0] part of ALSoft Power Utilities by ALSoft, Inc.)
  1647. Dpth (DepthMaster cp [1.0] by Victor Tan)
  1648. DWG! (Volume Menu cp [1.0], by David Gladstone, Chris Burns, Julian Harris)
  1649. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  1650. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  1651. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  1652. Extn (NOW Startup Manager cp [4.0?] part of NOW Utilities 4.0.1p package
  1653.       by NOW Software)
  1654. Fie  (Icon7 ext [???] by Inline Designs)
  1655.      gestaltIcon7?
  1656. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  1657.      package)
  1658. fPth (FinderPaths cp? [???])
  1659.      NOTE: The f is actually the option-f character (ASCII $C4).
  1660. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  1661. fWmM (Super Boomerang cp [4.0?] part of NOW Utilities 4.0.1p package
  1662.       by NOW Software)
  1663. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  1664. gV00 (PowerPort cp? [???])
  1665. gV01 (PowerPort cp? [???])
  1666. gV02 (PowerPort cp? [???])
  1667. gV03 (PowerPort cp? [???])
  1668. gV04 (PowerPort cp? [???])
  1669. He20 (Helium cp [1.0?] by Robert L. Mathews)
  1670. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  1671.      GDEF always returns value 1.
  1672. HtLk (Reference Link ext [1.0] by James W. Walker)
  1673. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  1674.      NOTE:
  1675.      Because this cp patches the _Random trap you can use this selector to
  1676.      determine its presence and refuse to continue.
  1677. Intj (Interjection ext [???])
  1678. JAiN (Rival cp by Inline Designs)
  1679.      gestaltRival
  1680.      NOTE: The i is actually the option-u/i character (ASCII $95).
  1681. jsm1 (???)
  1682. JXNM (NowMenus cp [4.0?] part of NOW Utilities 4.0.1p package
  1683.       by NOW Software)
  1684. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  1685. KBCM (???)
  1686. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  1687. LxRZ (???)
  1688. MClk (SuperClock! [4.0] by Steve Christensen)
  1689. MJC& (AutoMenus II cp [???] by Michael Conrad)
  1690. MV10 (TearOFF cp [???] by Bad Boys' Software)
  1691. NGst (NokNok cp [1.0?])
  1692. NkNk (NokNok cp [1.0?])
  1693. NowT (NOW Toolbox ext [4.0?] part of NOW Utilities 4.0.1p package
  1694.       by NOW Software)
  1695. PBUf (???)
  1696. PBUt (???)
  1697. PRT+ (PrintAid [0.9?] by James W. Walker)
  1698. QRef (QuickRef ext? [1.0] by Scott Bronson)
  1699. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  1700. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  1701.      ALSoft, Inc.)
  1702. SFun (SF Windows [1.0] by Damon Cokenias)
  1703. SFwd (Open-wide cp [3.0?] by James W. Walker)
  1704. SHCM (???)
  1705. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  1706. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  1707. SDIT (???)
  1708. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  1709. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  1710. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  1711. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by Keisuke Hara)
  1712.      See also FtCg selector.
  1713. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  1714.      gestaltViewerEngine
  1715. XTND (not installed by any software)
  1716.      NOTE:
  1717.      Is used in some code to check if XTND engine is present. However it is
  1718.      never installed, so supposedly it is meant for future use. Like a
  1719.      built-in XTND engine in the System Software? When the selector is
  1720.      installed all operations are dispatched through trap $ABF4 otherwise
  1721.      the library provides the code. (Marco Piovanelli)
  1722. WARE (???)
  1723. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  1724.      NOTE: The W is actually the option-w character (ASCII $B7).
  1725. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  1726.      NOTE: The W is actually the option-w character (ASCII $B7).
  1727. *Men (OtherMenu ext [1.0b16?, discontinued?] by James W. Walker)
  1728.  
  1729. Gestalt Manager Calls
  1730. =====================
  1731. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  1732. in this chapter.
  1733.  
  1734. Gestalt Manager Routines
  1735. ------------------------
  1736. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  1737. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  1738. documented. Sorry, for mixing Pascal and C source, I will convert
  1739. everything to C when I know enough about it and have the time.
  1740.  
  1741. FUNCTION Gestalt (selector: OSType; VAR Response: LongInt): OSErr;
  1742.      Available since System 6.0.4.
  1743.      Trap Macro
  1744.        _Gestalt ($A1AD)
  1745.      Registers on entry   D0: selector code
  1746.      Registers on exit    A0: response
  1747.                           D0: result code
  1748.      Result codes
  1749.        noErr                       0 No error
  1750.        gestaltUnknownErr       -5550 Could not obtain the response
  1751.        gestaltUndefSelectorErr -5551 Undefined selector
  1752. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  1753.      Available since System 6.0.4.
  1754.      Trap Macro
  1755.        _NewGestalt ($A3AD)
  1756.      Registers on entry   A0: address of new selector function
  1757.                           D0: selector code
  1758.      Registers on exit    D0: result code
  1759.      Result codes
  1760.        noErr                       0 No error
  1761.        memFullErr               -108 Ran out of memory
  1762.        gestaltDupSelectorErr   -5552 Selector already exists
  1763.        gestaltLocationErr      -5553 Function not in system heap
  1764. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  1765.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  1766.      Available since System 6.0.4.
  1767.      Trap Macro 
  1768.        _ReplaceGestalt ($A5AD)
  1769.      Registers on entry   A0: address of new selector function
  1770.                           D0: selector code
  1771.      Registers on exit    A0: address of old selector function
  1772.                           D0: result code
  1773.      Result codes
  1774.        noErr                       0 No error
  1775.        gestaltUndefSelectorErr -5551 Undefined selector
  1776.        gestaltLocationErr      -5553 Function not in system heap
  1777. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  1778.         (*userRoutine)(selector, response)
  1779.      Trap Macro 
  1780.        ??? (???)
  1781.      Registers on entry   ???
  1782.      Registers on exit    ???
  1783.      Result codes
  1784.        noErr                       0 No error
  1785.        ???                       ??? ???
  1786. #define NewSelectorFunctionProc(userRoutine)  \
  1787.         (SelectorFunctionUPP)(userRoutine)
  1788.      Trap Macro 
  1789.        ??? (???)
  1790.      Registers on entry   ???
  1791.      Registers on exit    ???
  1792.      Result codes
  1793.        noErr                       0 No error
  1794.        ???                       ??? ???
  1795.          
  1796. Undocumented Gestalt Manager Routines
  1797. -------------------------------------
  1798. FUNCTION? GestaltDispatch? (???):OSErr;?
  1799.      Trap Macro
  1800.        _GestaltDispatch ($A0AD)
  1801.      Registers on entry   ???
  1802.      Registers on exit    ???
  1803.      Result codes
  1804.        noErr                       0 No error
  1805.        ???
  1806.  
  1807.      NOTE:
  1808.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  1809.      on 'Bookmark CD 14'.
  1810.      Available since System 6.0.4 but code will always return error -50
  1811.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  1812. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  1813.                               var selectorfunction: ProcPtr): OSErr;?
  1814.      Trap Macro
  1815.        _GetGestaltProcPtr ($A7AD)
  1816.      Registers on entry   D0: selector code?
  1817.      Registers on exit    ??: address of selector function
  1818.      Result codes
  1819.        noErr                       0 No error
  1820.        ???
  1821.  
  1822.      NOTE:
  1823.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  1824.      Available since System 6.0.4 but code will always return error -50
  1825.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  1826.      I (Rene Ros) have written Pascal code to do what this system call
  1827.      probably is planned to do in the future.
  1828.  
  1829. Gestalt Value Routines
  1830. ----------------------
  1831. Please note the GestaltValue routines are currently invoked through a
  1832. library, and only in the future will GestaltValue be moved into the OS
  1833. proper. The GestaltValue functions are stack based and don't use registers.
  1834. The GestaltValue library first checks to see if trap $ABF1 is implemented
  1835. (not with any system software available). If trap $ABF1 is implemented, all
  1836. calls to the library are routed to this trap, otherwise the library uses
  1837. embedded code.
  1838.  
  1839. WARNING:
  1840. The GestaltValue library distributed originally checks for the wrong trap
  1841. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  1842. trap is installed by the Thread Manager Extension. See Related Software
  1843. chapter for availability (also on mail archive server).
  1844. (Most info about the GestaltValue functions was provided by
  1845. Marco Piovanelli and Dave Radcliffe).
  1846.  
  1847. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  1848.      Available as glue code.
  1849.      Trap Macro                      Selector
  1850.        _GestaltValueDispatch ($ABF1) $0401
  1851.      Result codes
  1852.        noErr                       0 No error
  1853.        unimpErr                   -4 Unimplemented core routine
  1854.        memFullErr               -108 Ran out of memory
  1855.        (and other memory errors)
  1856.        gestaltDupSelectorErr   -5552 Selector already exists
  1857. FUNCTION ReplaceGestaltValue (selector: OSType;
  1858.                               replacementValue: LongInt): OSErr;
  1859.      Available as glue code.
  1860.      Trap Macro                      Selector
  1861.        _GestaltValueDispatch ($ABF1) $0402
  1862.      Result codes
  1863.        noErr                       0 No error
  1864.        unimpErr                   -4 Unimplemented core routine
  1865.        memFullErr               -108 Ran out of memory
  1866.        (and other memory errors)
  1867.        gestaltUndefSelectorErr -5551 Undefined selector
  1868. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  1869.      Available as glue code.
  1870.      Trap Macro                      Selector
  1871.        _GestaltValueDispatch ($ABF1) $0203
  1872.      Result codes
  1873.        noErr                       0 No error
  1874.        unimpErr                   -4 Unimplemented core routine
  1875.        gestaltUndefSelectorErr -5551 Undefined selector
  1876.  
  1877. Kilo-liners
  1878. ===========
  1879. This chapter will list very small pieces of code which are related to
  1880. any Gestalt Routine.
  1881.  
  1882. Modula-2 source:
  1883. TYPE
  1884.     SelectorFunction =
  1885.       PROCEDURE
  1886.       (
  1887.        (*selector :*) OSType,
  1888.        VAR (*response :*) LONGCARD
  1889.       ) : OSErr;
  1890.  
  1891. C-source:
  1892. typedef pascal OSErr (*SelectorFunction)(OSType, long);
  1893.  
  1894. Direct Gestalt Calls
  1895. --------------------
  1896. You can use the following code to call directly the Gestalt, NewGestalt and
  1897. ReplaceGestalt traps. In that way the (large) glue code will not be
  1898. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  1899. Marco Piovanelli).
  1900.  
  1901. Modula-2 source:
  1902.     PROCEDURE Gestalt
  1903.       ( selector : OSType;
  1904.         VAR response : LONGINT
  1905.       ) : OSErr;
  1906.       (* direct call to Gestalt trap. *)
  1907.  
  1908.         CODE
  1909.             0225FH,    (* move.l (sp)+, a1 *)
  1910.             0201FH,    (* move.l (sp)+, d0 *)
  1911.             0A1ADH,    (* _Gestalt *)
  1912.             02288H,    (* move.l a0, (a1) *)
  1913.             03E80H;    (* move.w d0, (sp) *)
  1914.  
  1915. Pascal-source:
  1916.      FUNCTION Gestalt (selector: OSType;
  1917.                        VAR response: LONGINT): OSErr;
  1918.      {direct call to Gestalt trap.}
  1919.      inline $225F, $201F, $A1AD, $2288, $3E80;
  1920.  
  1921. Modula-2 source:
  1922.      PROCEDURE NewGestalt
  1923.       ( selector: OSType;
  1924.         gestaltFunction: SelectorFunction
  1925.       ): OSErr;
  1926.      (* direct call to NewGestalt trap. *)
  1927.  
  1928.      CODE   0205FH,    (* move.l (sp)+, a0 *)
  1929.             0201FH,    (* move.l (sp)+, d0 *)
  1930.             0A3ADH,    (* _NewGestalt *)
  1931.             03E80H;    (* move.w d0, (sp) *)
  1932.  
  1933. Pascal-source:
  1934.      FUNCTION NewGestalt (selector: OSType;
  1935.                           gestaltFunction: ProcPtr): OSErr;
  1936.      {direct call to NewGestalt trap}
  1937.      inline $205F, $201F, $A3AD, $3E80;
  1938.  
  1939. Modula-2 source:
  1940.     PROCEDURE ReplaceGestalt
  1941.       ( selector : OSType;
  1942.         gestaltFunction : SelectorFunction;
  1943.         VAR oldGestaltFunction : SelectorFunction
  1944.       ) : OSErr;
  1945.       (* direct call to Gestalt trap. *)
  1946.  
  1947.         CODE
  1948.             0225FH,    (* move.l (sp)+, a1 *)
  1949.             0205FH,    (* move.l (sp)+, a0 *)
  1950.             0201FH,    (* move.l (sp)+, d0 *)
  1951.             0A5ADH,    (* _ReplaceGestalt *)
  1952.             02288H,    (* move.l a0, (a1) *)
  1953.             03E80H;    (* move.w d0, (sp) *)
  1954.  
  1955. Pascal-source:
  1956.      FUNCTION ReplaceGestalt (selector: OSType;
  1957.                               gestaltFunction: ProcPtr;
  1958.                               VAR oldGestaltFunction: ProcPtr
  1959.                              ): OSErr;
  1960.      {direct call to ReplaceGestalt trap.}
  1961.      inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  1962.  
  1963. Direct GestaltValue Calls
  1964. -------------------------
  1965. You can use the following code to call directly the NewGestaltValue,
  1966. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  1967. trap is available.
  1968.  
  1969. Pascal-source: *20
  1970.      FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  1971.      inline $303C, $0401, $ABF1;
  1972.  
  1973.      FUNCTION ReplaceGestaltValue(selector: OSType,
  1974.                                   replacementValue: LongInt): OSErr;
  1975.      inline $303C, $0402, $ABF1;
  1976.      
  1977.      FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  1978.      inline $303C, $0203, $ABF1;
  1979.  
  1980. GestaltSelectorZero
  1981. -------------------
  1982. With all the selectors that are supposed to return non-zero values if
  1983. installed, it may be helpful to have a utility routine that returns a zero
  1984. value (instead of an error) if a selector isn't installed. It's short and
  1985. sweet because it makes a direct call to the _Gestalt trap; of course this
  1986. means you can't use it on systems earlier than 6.0.4.
  1987. (Contributed by Lawrence D'Oliveiro)
  1988.  
  1989. Modula-2 source:
  1990.      PROCEDURE GestaltSelectorZero (Selector: OSType): LONGCARD;
  1991.      (* returns the value of the specified Gestalt selector,
  1992.      or zero if unknown. *)
  1993.      CODE   0201FH,    (* move.l (sp)+, d0 *)
  1994.             0A1ADH,    (* _Gestalt *)
  1995.             06702H,    (* beq.s @2 *)
  1996.             091C8H,    (* sub.l a0, a0 *)
  1997.             02E88H;    (* @2: move.l a0, (sp) *)
  1998.  
  1999. Pascal-source:
  2000.      FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  2001.      {returns the value of the specified Gestalt selector,}
  2002.      {or zero if unknown.}
  2003.      inline $201F, $A1AD, $6702, $91C8, $2E88;
  2004.  
  2005. Call Gestalt Definiton Direct
  2006. -----------------------------
  2007. Suppose you have just loaded a GDEF resource, or replaced one and keep the
  2008. original around and store a pointer to it somewhere private. Suppose next,
  2009. you want to call it to obtain a response without using yet another selector.
  2010. Thats what the following inline code is usefull for. Just pass it the
  2011. usual selector and result parameters but also a pointer to the GDEF
  2012. (Lock it if it's still a relocatable block).
  2013.  
  2014. Pascal-source:
  2015.      FUNCTION CallGestaltDEF (selector: OSType;
  2016.                               var result: LongInt;
  2017.                               aRoutine: ProcPtr): OSErr;
  2018.      inline $205F, $4E90;
  2019.             {MOVE.L (SP)+, A0}
  2020.             {JSR (A0)}
  2021.  
  2022. Abbreviations
  2023. =============
  2024. ADB      - Apple Desktop Bus
  2025. AS       - AppleShare
  2026. ASC      - Apple Sound Chip
  2027. ASIC     - Application specfic integrated circuit
  2028. AWAC     - ???
  2029. Caboose  - processor that manages the keyswitch, system power,
  2030.            the real-time clock, and parameter RAM 
  2031. CLUT/DAC - color look-up table and digital-to-analog converter IC
  2032. Combo    - chip, combines the functions of the SCC and the SCSI controller
  2033. CPU      - Central Processing Unit
  2034. DAFB     - Direct Access Frame Buffer
  2035. DAV      - Digital Audio Video
  2036. DDC      - Display Driver Chip
  2037. DFAC     - Digitally Filtered Audio Chip
  2038. DMA      - Direct Memory Access
  2039. DN       - Developer Note
  2040. DSP      - Digital Signal Processor
  2041. FAT      - ???
  2042. FPU      - Floating Point Unit
  2043. GDEF     - Gestalt DEFinition (code resource)
  2044. GPi      - General Purpose Input
  2045. IM       - Inside Macintosh
  2046. IOP      - Input/Output Processor
  2047. IWM      - Integrated Woz Machine
  2048. JDB      - Junction Data Bus
  2049. MCU      - Memory Control Unit
  2050. MMU      - Memory Management Unit
  2051. OCE      - Open Colloboration Environment
  2052. OSA      - Open Scripting Architecture
  2053. OSL      - Object Support Library
  2054. OSS      - ???
  2055. PB       - PowerBook
  2056. PDS      - Processor-Direct Slot
  2057. PGC      - Parity Generator Chip
  2058. PMMU     - Paged Memory Management Unit
  2059. PSRAM    - Pseudo Static RAM
  2060. PPC      - Process-to-Process Communication, also:
  2061.            PowerPC
  2062. ProDOS   - Professional Disk Operating System? (OS for the Apple //)
  2063. PWM      - Pulse-Width Modulated?
  2064. QD       - QuickDraw
  2065. RAMDAC   - Random Access Memory, Digital/Analog Converter
  2066. RBV      - RAM-Based Video
  2067. RTC chip - Real-Time Clock chip
  2068. SCC      - Serial Communications Controller
  2069. SCSI     - Small Computer System Interface
  2070. SDP      - Standard Directory Package
  2071. SIMM     - Single In-line Memory Module
  2072. SMP      - Standard Mailer Package
  2073. Sonic    - chip for built-in Ethernet
  2074. Sporty   - a custom IC that provides sound output amplification functions
  2075. SRAM     - Static RAM
  2076. SWIM     - Super Integrated Woz Machine
  2077. TN       - Technical Note
  2078. TTS      - Text-To-Speech
  2079. VIA      - Versatile Interface Adapter
  2080. VRAM     - Video RAM
  2081. VM       - Virtual Memory
  2082. VDAC     - Video Digital to Analog Converter
  2083. YANCC    - Yet Another NuBus Controller Chip
  2084.  
  2085. FA       - File Access
  2086. RA       - Remote Access
  2087.  
  2088. Sources
  2089. =======
  2090.  *1 Apple Inc.; TN M.OV.GestaltSysenvirons (OV 16), May 1987
  2091.  *2 Symantec Corp.; THINK Pascal 4.0.1
  2092.  *3 Carl C.Hewitt; Gestalt DA 0.4 1990
  2093.  *4 Apple Computer Inc.; TN M.NW.AppleTalk2 (NW 13), Feb.1992
  2094.  *5 Apple Computer Inc.; MacTCP Programmer's Guide.
  2095.  *6 Apple Computer Inc.; QuickTime ImageCompression source files
  2096.  *7 Symantec Corp.; Think C GestaltGlue source files
  2097.  *8 Eric Simenel, Apple Computer France; Gestalt dcmd 1.0
  2098.  *9 Apple Computer Inc.; AppleTalk Remote Access API External
  2099.                          Reference Specification
  2100. *10 Symantec Corp.; THINK Reference 1.0
  2101. *11 Apple Computer Inc.; CommToolbox 1.1 source files
  2102. *12 Apple Computer Inc.; Macintosh Easy Open programmer's docs
  2103. *13 Apple Computer Japan, Inc.; sysvINIT source files
  2104. *14 ICOM Simulations; TMON Professional Reference Manual (p.192)
  2105. *15 Apple Computer Inc.; Thread Manager 1.1 documentation
  2106. *16 Apple Computer Inc.; TN M.DV.CD-ROMDriver (DV 22), May 1993
  2107. *17 Apple Computer Inc.; TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  2108. *18 Apple Computer Inc.; TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  2109. *19 Apple Computer Inc.; MPW Interface files on Bookmark CD 14
  2110. *20 Apple Computer Inc.; GestaltEqu interface files on ETO #12
  2111. *21 Apple Computer Inc.; 'Sept 93 Late Breaking Q&As' on Bookmark CD 15
  2112. *22 Apple Computer Inc.; Drag Manager Programmer's Guide
  2113. *23 Berkeley Systems, Inc.; AfterDarkGestalt.h file
  2114. *24 Apple Computer Inc.; Sound Manager Tech Note on BookMark CD 16
  2115. *25 Apple Computer Inc.; GestaltEqu interface files on ETO #13
  2116.  
  2117.  
  2118. Miscellaneous
  2119. =============
  2120. This chapter lists a number of miscellaneous data.
  2121.  
  2122. AppleShare File & Print Server selector codes
  2123. ---------------------------------------------
  2124. The selectors are defined when the application has run. If it is still
  2125. running (or wasn't properly quit) the response is one. When the application
  2126. has properly quit the response is zero.
  2127.      admn AppleShare Admin
  2128.      asps AppleShare Print Server
  2129.      hgfd AppleShare File Server
  2130. (these three are undocumented)
  2131.  
  2132. Glue code
  2133. ---------
  2134. The following programming software includes glue-code to return some
  2135. responses even if the Gestalt Manager is not available. Every entry
  2136. includes the selectors of which the Glue-code can return a response.
  2137.  
  2138. Symantec THINK Pascal [at least since 4.0]:
  2139.      atlk, fpu , kbd , lram, mach, mmu , proc, qd  , ram , sysv, vers
  2140.  
  2141. MPW 3.2 and THINK C?:
  2142.      atlk, fpu , kbd , lram, mach, proc, qd  , ram , sysv, vers
  2143.      (Source: Programming Public Domain FAQ by John Watte)
  2144.  
  2145. Related Software
  2146. ----------------
  2147. Listed below is software which may be of interest to developers because
  2148. they are a tool providing information from the Gestalt Manager, include
  2149. Gestalt-related source code or provide additional capabilities to the
  2150. Gestalt Manager. Included is also were you can find or get a copy.
  2151. All software available on sumex-aim.stanford.edu is also available on the
  2152. INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
  2153. may have one or more mirror sites as well. Locations on CompuServe are not
  2154. included.
  2155. Some software listed below can also be found at the mail-archive server,
  2156. see the chapter 'Availability' for more information.
  2157.  
  2158. 5thColumn, GestaltProbe (by Kamran Golriz)
  2159.      Extension with MPW Tools to query other mac on a network, one of
  2160.      the tools is GestaltProbe.
  2161.        CD-ROM: Bookmark CD (Apple Developer Group)
  2162.                  :Tools & Applications:Network & Communications:5th Column:
  2163. AEgestalt (by Kent Sandvik)
  2164.      Uses Apple Events to get Gestalt response from remote machine,
  2165.      includes C-source. (Requires color?? Doesn't run on MacPlus)
  2166.        FTP:    ftp.apple.com [130.43.2.3]
  2167.                  /dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
  2168.        CD-ROM: Bookmark CD (Apple Developer Group)
  2169.                  :Documentation & Samples:Sample Code:Snippets:
  2170.                  Platforms & Tools:AEGestalt 1.0:
  2171. DisplayGestalt (by Craig Marciniak)
  2172.      Small application displays configuration using Gestalt Mgr, includes
  2173.      C-source.
  2174.        FTP:    mac.archive.umich.edu [141.211.165.34]
  2175.                  /development/libraries/displaygestalt.cpt.hqx
  2176. Feature Teller 1.0 (by Jennifer Minge)
  2177.      Sample application quering Gestalt Mgr (or SysEnvirons if not
  2178.      available). Includes THINK Pascal source.
  2179.        CD-ROM: Bookmark CD (Apple Developer Group)
  2180.                  :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
  2181. Gestalt! 2.9.4 (by Roland Mansson)
  2182.      Displays responses from installed selectors.
  2183.        FTP:    ftp.lu.se [130.235.132.89]
  2184.                  /pub/mac/util/Gestalt!_294.cpt.hqx
  2185.                sumex-aim.stanford.edu [36.44.0.6]
  2186.                  /info-mac/util/gestalt-28.hqx
  2187.        email:  gestalt-selectors-list-request@bio.vu.nl
  2188.                  software/gestalt-294-app.cpt.hqx
  2189. GestaltDA 0.4 (by Carl C. Hewitt)
  2190.      Displays responses from installed selectors.
  2191.        CD-ROM: Bookmark CD (Apple Developer Group)
  2192.                  :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  2193. Gestalt DCMD
  2194.      This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
  2195.      when you're in MacsBug.
  2196.        FTP:    ftp.apple.com [130.43.2.3]
  2197.                  /dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
  2198.        CD-ROM: Bookmark CD (Apple Developer Group)
  2199.                  :Documentation & Samples:Sample Code:Snippets:
  2200.                  Platforms & Tools:Gestalt dcmd:
  2201. GestaltExt (by Andre Cavegn)
  2202.      External for 4TH Dimension Relational Database application from
  2203.      ACI/ACI US.
  2204.        FTP:    sumex-aim.stanford.edu [36.44.0.6]
  2205.                  /info-mac/dev/a4d/ext/gestalt-ext.hqx
  2206.        email:  gestalt-selectors-list-request@bio.vu.nl
  2207.                  software/gestalt-ext.hqx
  2208. GestaltGlue
  2209.      Glue code and interface in C and assembly.
  2210.        CD-ROM: Bookmark CD (Apple Developer Group)
  2211.                  :Documentation & Samples:Sample Code:System 7.0 samples:
  2212.                  DTS.Utilities:Gestalt*
  2213. Gestalt Pro 1.1 (by Rene G.A. Ros)
  2214.      External for 4TH Dimension Relational Database application from
  2215.      ACI/ACI US.
  2216.        FTP:    sumex-aim.stanford.edu [36.44.0.6]
  2217.                  /info-mac/dev/a4d/ext/gestalt-pro-11-ext.hqx
  2218.        email:  gestalt-selectors-list-request@bio.vu.nl
  2219.                  software/gestalt-pro-11-ext.hqx
  2220. GestaltTalk (by Brigham Stevens, Apple Computer DTS)
  2221.      Code part of Notification Hacks to show how you can communicate
  2222.      between an application and an INIT using the Gestalt Mgr. Includes
  2223.      C-source files.
  2224.        CD-ROM: Bookmark CD (Apple Developer Group)
  2225.                  :Documentation & Samples:Sample Code:Snippets:
  2226.                  Toolbox:Notification Hacks:GestaltTalk:
  2227. GestaltValue (anonymous, Apple Computer Inc.)
  2228.      Library and interface for use of the GestaltValue functions.
  2229.        CD-ROM: Bookmark CD (Apple Developer Group)
  2230.                  :Tools & Applications:OS/Toolbox:GestaltValue:
  2231.        email:  Dave Radcliffe, Mac DTS (radcliff@apple.com)
  2232.                gestalt-selectors-list-request@bio.vu.nl
  2233.                  software/gestaltvalue-lib.hqx
  2234. GestaltWatch ext 1.0a1 (by Scott Bronson)
  2235.      Tracks all calls to NewGestalt and ReplaceGestalt traps.
  2236.      Not available yet.
  2237. Gestalt XFCN 3.2.1 (by Jeff Iverson)
  2238.      Hypercard XFCN to query the Gestalt Manager.
  2239.        FTP:    sumex-aim.stanford.edu [36.44.0.6]
  2240.                  /info-mac/card/gestalt-321.hqx
  2241.        email:  gestalt-selectors-list-request@bio.vu.nl
  2242.                  software/gestalt-321-xfcn.hqx
  2243. Gestaltzeigen appl 1.0 (by B. Kevin Hardman)
  2244.      Displays responses from installed selectors and any bit
  2245.      interpretation. Not available yet.
  2246. Technical Notes:
  2247.      M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
  2248.      M.NW.AppleTalk2         (AppleTalk The Rest Of the Story)
  2249.      M.OS.GestaltMgr.Q&As    (Gestalt Manager Questions and Answers)
  2250.        FTP:    ftp.apple.com [130.43.2.3]
  2251.                  /dts/mac/tn/
  2252.                    overview/gestalt-and-system-environs.hqx
  2253.                    networking/appletalk2.hqx
  2254.                    M.OU.GestaltMgr.Q&As not yet available 
  2255.        CD-ROM: Bookmark CD (Apple Developer Group)
  2256.                  :Documentation & Samples:Mac Tech Notes:
  2257.                    Overview (OV):OV 16 - Gestalt & SysEnvirons
  2258.                    Networking (NW):NW 13 - AppleTalk The Rest Of
  2259.                    Operating System (OS):OS 505 - Gestalt Mgr Q&As
  2260. Test Gestalt
  2261.      Examples to test for QuickDraw version and Virtual Memory status,
  2262.      includes C-source.
  2263.        FTP:    ftp.apple.com [130.43.2.3]
  2264.                  /dts/mac/sc/snippets/toolbox/testgestalt.hqx
  2265.        CD-ROM: Bookmark CD (Apple Developer Group)
  2266.                  :Technical Documentation:Sample Code:Snippets:
  2267.                  Toolbox:TestGestalt:
  2268.  
  2269. About this list
  2270. ===============
  2271. I would like to see this list to be a combined effort by different persons
  2272. who have together access to a wide area of information.
  2273. This list may contain (educated) guesses and perhaps even false
  2274. information, so no guarantee is made about the contents.
  2275. You may use this information freely (see Legal Stuff chapter), but when you
  2276. find information not included in IM VI or in this list; please tell me.
  2277. If you have additions, corrections, comments, suggestions, news about
  2278. available software, etc., please mail me. Please, also mention the source
  2279. you used, if any.
  2280. You can send contributions, remarks, etc. to this email address:
  2281.     gestalt-selectors-list@bio.vu.nl
  2282. If you want to remain anonymous, please mention this and it will be taken
  2283. care of.
  2284. I don't have all the documentation or knowledge and I don't want to, and
  2285. I'am certainly not Mr.Gestalt.
  2286.  
  2287. Availability
  2288. ------------
  2289. If you downloaded this list from CompuServe, BBS, or any other service,
  2290. you will notice some strange things like 'FTP-sites' which have to do
  2291. with the fact that this list originates from INTERNET.
  2292.  
  2293. This list is originally distributed in the following ways:
  2294.  
  2295. **INTERNET**
  2296.  
  2297. USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
  2298. This list has become too large to post to c.s.m.p., so starting from
  2299. version 2.2 this list will no longer be posted. Instead an announcement
  2300. will be posted informing were you can find the latest version.
  2301.  
  2302. FTP-site
  2303. sumex-aim.stanford.edu [36.44.0.6]
  2304. Every minor and major version is submitted to the info-mac archives at
  2305. sumex-aim.stanford.edu. (/info-mac/dev/info/gestalt-selectors-XX.hqx)
  2306. It is also available on its mirror sites.
  2307.  
  2308. FINGER
  2309. Using Finger to obtain the latest version is no longer possible.
  2310.  
  2311. **COMPUSERVE**
  2312.  
  2313. Starting with version 2.0 this list will be uploaded to the
  2314. Macintosh Developers Forum (MACDEV). Only new minor and major versions
  2315. will be uploaded once. It will then appear in the Tools/Debuggers (13)
  2316. section.
  2317.  
  2318. **GENERAL**
  2319.  
  2320. CD-ROM or BBS
  2321. Because of permissions I granted you may get this list from a CD-ROM
  2322. (BBS in a BOX, Info-Mac CD-ROM, MacWorld CD-ROM BeNeLux, Nautilus CD-ROM)
  2323. or via a BBS from Internet, CompuServe or a CD-ROM. If you do, and the
  2324. release was more than two months ago, there is probably already a new
  2325. version.
  2326.  
  2327. MAILING LIST
  2328. Every person on the mailing list gets automatically an update by email
  2329. whenever there are some changes. If you want to subscribe or unsubscribe to
  2330. this mailing list you need to send an email to this address:
  2331.      gestalt-selectors-list-request@bio.vu.nl
  2332. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  2333.  
  2334. The mailing list is moderated, which means everybody, who is subscribed,
  2335. can email to:
  2336.     gestalt-selectors-list@bio.vu.nl
  2337. But only after approval of the moderator the other subscribers will receive
  2338. your posting. This guarantees that no confidential contribution is
  2339. distributed before the moderator sees it.
  2340.  
  2341. This service is only possible to those who have an account on Internet or
  2342. any other network reachable from Internet (CompuServe, AOL, AppleLink).
  2343. I can not provide mailing of printed versions or on disk by normal surface
  2344. mail.
  2345.  
  2346. MAIL ARCHIVE SERVER
  2347. Your can retrieve the latest versions of this list and other software
  2348. by sending an email to this address:
  2349.      gestalt-selectors-list-request@bio.vu.nl
  2350. In the subject line you need to enter 'archive' and then put one command
  2351. behind it or more in the body of your email. These commands can be:
  2352.      help             to get some help on using the archive server
  2353.      ls <dir>         to list the contents of the specified directory
  2354.      get <dir>/<file> to have the specified file sent to you by email.
  2355. To obtain the abstracts of all files available you can use this command:
  2356.      get ABSTRACTS
  2357.  
  2358. PRINTED
  2359. If you want this list printed on paper you may want to try a new feature
  2360. included with the new LaserWriter 8 software. With it you can print four
  2361. pages on a single sheet of paper. When you set the page breaks correct,
  2362. this produces a very neat, little booklet.
  2363.  
  2364. Acknowledgements
  2365. ----------------
  2366. I would like to thank the following persons for their contribution to
  2367. this list:
  2368.  
  2369. _NAME                                                 INTERNET EMAIL ADDRESS_
  2370. Anonymous contributor(s)                             <anonymous@secret.cia>
  2371. Lonnie R. Abelbeck                              <abelbeck@dev.abelbeck.com>
  2372. J.D. Sterling Babcock                                    <jdsb@ee.duke.edu>
  2373. Ivan M Cavero Belaunde                              <ivanski@world.std.com>
  2374. Jim Browne                                          <jbrowne@ncsa.uiuc.edu>
  2375. Scott Bronson                                       <urge@mcl.mcl.ucsb.edu>
  2376. Mark Dawson                                                <marc@apple.com>
  2377. Lawrence D'Oliveiro                                     <ldo@waikato.ac.nz>
  2378. M. David Greenspon                            <gremicf@yalevm.ycc.yale.edu>
  2379. C.K. Haun                                                  <haun@apple.com>
  2380. Michael Hecht                                   <Michael_Hecht@mac.sas.com>
  2381. Robert Hess                                  <robert_hess@macweek.ziff.com>
  2382. Mark B. Johnson                                        <mjohnson@apple.com>
  2383. David B. Lamkins                                        <dblamkins@aol.com>
  2384. Roland Mansson                                   <roland.mansson@ldc.lu.se>
  2385. Matsubayashi Kohji                          <matubays@ics.es.osaka-u.ac.jp>
  2386. Duane Murphy, Novell Inc.                          <damurphy@wc.novell.com>
  2387. Mark Nagata                                   <nagata@kurims.kyoto-u.ac.jp>
  2388. Fabrizio Oddone                                       <simula3@di.unito.it>
  2389. Marco Piovanelli                              <piovanel@ghost.dsi.unimi.it>
  2390. Kees Pols                                                 <kpols@bio.vu.nl>
  2391. Francois Pottier                                   <pottier@clipper.ens.fr>
  2392. Jon Pugh                                               <jonpugh@netcom.com>
  2393. Quinn                                                 <quinn@cs.uwa.edu.au>
  2394. Dave Radcliffe, Apple Computer Inc. Mac DTS            <radcliff@apple.com>
  2395. Pete Resnick                                      <resnick@cogsci.uiuc.edu>
  2396. Leonard Rosenthol                                     <leonardr@netcom.com>
  2397. Jeremy Roussak                                      <jeremyr@dcs.qmw.ac.uk>
  2398. Victor Tan                                     <victort@extro.ucc.su.oz.au>
  2399. Rodrigo Torres, Berkeley Systems Mac Tech Support      <brklysystm@aol.com>
  2400. John Watte                                            <d88-jwa@nada.kth.se>
  2401. Chris Wysocki                                          <wysocki@netcom.com>
  2402.  
  2403. And the Computer Department at the Biology Faculty of the Free University
  2404. in Amsterdam, The Netherlands for their help and support. Also special
  2405. thanks to Marco Piovanelli for his support and comments about preliminary
  2406. versions and updates.
  2407.  
  2408. The persons mentioned above provided information used in this list. They
  2409. did this on personal title, NOT on behalf of their employer, unless
  2410. explicitly listed otherwise.
  2411. I assume information you mail to me about Gestalt selectors may be used in
  2412. this list. Information made available to the general public (e.g. a posting
  2413. to a USENET newsgroup) is also included and the persons name added to this
  2414. chapter (and to the mailing list).
  2415. I will mail you back to thank you and include the parts from the list which
  2416. were changed, according to the information you provided, to let you check
  2417. them.
  2418.  
  2419. Definitions and Format
  2420. ======================
  2421. This chapter explains where the word 'Gestalt' comes from, a few things
  2422. are defined and it explains how each selector code entry looks like.
  2423.  
  2424. Use in Language
  2425. ---------------
  2426. Webster's Dictionary (?):
  2427.      ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  2428.      \-<\e>n\ or gestalts (1922)
  2429.        [G, lit., shape, form]
  2430.        :a structure, configuration, or pattern of physical, biological,
  2431.        or psychological phenomena so integrated as to constitute a
  2432.        functional unit with properties not derivable by summation of its
  2433.        parts.
  2434. German-Dutch dictionary:
  2435.      Gestalt w [-en]
  2436.        stature, figure, form; Ritter von der Traurigen -, knight of the
  2437.        sorrowful figure.
  2438.  
  2439. Definitions
  2440. -----------
  2441. Apple System Software
  2442.      These are selectors installed by System Software from Apple Computer,
  2443.      Inc.
  2444.      Inside Macintosh (part VI) says this about them:
  2445.      "Apple reserves for its own use all four-character sequences
  2446.      consisting solely of lowercase letters and non alphabetic ASCII
  2447.      characters".
  2448.  
  2449. Apple Additional Software
  2450.      These are selectors installed by additional software from Apple
  2451.      Computer, Inc. The same as with the system software selectors applies.
  2452.  
  2453. Third Parties Software
  2454.      These are selectors installed by software from parties other than
  2455.      Apple Computer, Inc.
  2456.      Inside Macintosh (part VI) says about these:
  2457.      "If you have registered a creator string with Apple, you are strongly
  2458.      encouraged to use that sequence as your selector code".
  2459.      This type of selectors is included in this list with the motto "If you
  2460.      don't know they are there, you can't do anything with them".
  2461.  
  2462. Format Selector Entry
  2463. ---------------------
  2464. Format used to display information about each selector:
  2465.  
  2466. selector code (Software name & type [since version], by company/author)
  2467.      constant name (description, documentation) OR description
  2468.  
  2469.      CONST declaration; {remark} *ref.number to source
  2470.  
  2471.      NOTE and/or WARNING:
  2472.  
  2473. Where the type is one of:
  2474. app  application (APPL)
  2475. cp   control panel (cdev)
  2476. ext  extension (INIT/appe/RDEV etc.)
  2477.  
  2478. Example:
  2479.  
  2480. COLA (Sugarwater ext [1.0] by John Sculley)
  2481.      gestaltSugarwaterVersion
  2482.      Returns version of Sugarwater as NumVersion.
  2483.  
  2484.      gestaltSugarwaterVersion= 'COLA'; *0
  2485.  
  2486.      WARNING: This example is fictitious.
  2487.      NOTE:
  2488.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  2489.      Apple' by Frank Rose.
  2490.  
  2491. Most selectors are listed as four characters, if there are only two or
  2492. three characters displayed the remainder are spaces (or it's a typo!).
  2493. Diacritical characters are shown in the most logical normal character and
  2494. at the end of the entry a note is included about which key-combination to
  2495. press with normal International system and US keyboard layout to get the
  2496. required diacritical character and also its ASCII code.
  2497. If a selector code is installed by Apple software the entry also includes
  2498. if it is an addition, a replacement or not listed in IM VI.
  2499. When 'INF' is at the end of the first line it means it is an informational
  2500. selector, all others are environmental selectors.
  2501. The source reference number may also be used in other places than indicated
  2502. above. It then applies to other parts of the entry or to the whole entry.
  2503. A single question mark indicates an uncertainty regarding that information.
  2504. Three question marks indicate complete abcense of the information.
  2505. Some constant-names may not originate from official publications.
  2506.  
  2507. Format Version Numbers
  2508. ----------------------
  2509. BCD (Binary Coded Decimal)
  2510.      $0x0402 means 4.0.2.
  2511. INTEGER
  2512.      The decimal representation of the returned value is the version.
  2513. NumVersion
  2514.      The format of the LongInt response can be coerced into type NumVersion,
  2515.      which is the same format as used for the 'vers' resource type.
  2516.  
  2517.      type
  2518.       NumVersion = packed record
  2519.        case INTEGER of
  2520.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  2521.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  2522.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  2523.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  2524.             nonRelRev: SignedByte);{revision level of non-released version}
  2525.         1: (version: LONGINT);     {to use all 4 fields at one time}
  2526.        end;
  2527.  
  2528.      stage is one of: $10 = development
  2529.                       $20 = alpha
  2530.                       $40 = beta
  2531.                       $80 = final
  2532.  
  2533.      The 'atkv' selector returns the majorRev release as hexadecimal.
  2534.  
  2535. Legal Stuff
  2536. ===========
  2537. (c) 1992-1994, Rene G.A. Ros
  2538.  
  2539. See other sections (below) for remarks regarding liability, trademarks and
  2540. distribution.
  2541.  
  2542. Notice of Liability
  2543. -------------------
  2544. The information in this list is distributed on an "AS IS" basis, without
  2545. warranty. While every precaution has been taken in the preparation of this
  2546. list, neither the editor nor any contributor shall have any liability to
  2547. any person or entity with respect to any liability, loss, or damage caused
  2548. or alleged to be caused directly or indirectly by the information contained
  2549. in this list or by the computer software and hardware products described
  2550. herein.
  2551.  
  2552. Trademarks
  2553. ----------
  2554. Throughout this list trademarked names are used. Rather than put a
  2555. trademark symbol in every occurrence of a trademarked name, I state I am
  2556. using the names only in an editorial fashion and to the benefit of the
  2557. trademark owner with no intention of infringement of the trademark.
  2558.  
  2559. Distribution
  2560. ------------
  2561. The information in this list may be used freely. When you use the
  2562. information in this list for COMMERCIAL purposes, you may consider sending
  2563. the editor a donation. You are not allowed to distribute this list outside
  2564. any computer network (especially printed, on disk or CD-ROM) unless you
  2565. have contacted the editor and received permission to do so. This is also to
  2566. ensure you have the latest version. The updates may not be distributed,
  2567. these are ONLY for the persons on the distribution list.
  2568.  
  2569. Permission for distribution is granted to:
  2570. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  2571. IDG Communications Nederland         (MacWorld CD-ROM)
  2572. METATEC Corporation                  (Nautilus CD-ROM)
  2573. Pacific HiTech, Inc.                 (Info-Mac CD-ROM)
  2574.  
  2575. You are not allowed to distribute modified versions of this list,
  2576. including, but not limited to, deleting, adding or moving text or adding
  2577. non-text parts. Distribution in any electronical format except a normal
  2578. (or compressed) text file is not allowed without permission.
  2579. You are not allowed to redistribute it with any other name than
  2580. 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the suffix
  2581. to indicate compression etc.) unless because of technical reasons. In such
  2582. case a name should be chosen which resambles it as closely as possible to
  2583. avoid confusion.
  2584.  
  2585. Editor's Address
  2586. ================
  2587. Rene G.A. Ros
  2588. student Computer Science, Institute of Technology
  2589.  
  2590. Del Court van Krimpenstraat 3
  2591. 1067 SG  Amsterdam - Geuzenveld
  2592. The Netherlands, Europe
  2593. Bank      : Postbank 4578223, Amsterdam
  2594.  
  2595. Phone#    : +31 20 611 92 74 / +31 20 611 87 00
  2596. Fax#      : +31 20 611 60 06
  2597. Internet  : rgaros@bio.vu.nl (preferred)
  2598.             rgaros@nikhefk.nikhef.nl
  2599.             rgaros@dds.hacktic.nl (The Digital City FreeNet)
  2600.             rener@htsa.aha.nl
  2601. CompuServe: >INTERNET: rgaros@bio.vu.nl
  2602.             100112,1363
  2603.             
  2604. Mailing list:
  2605. Internet    contributions:
  2606.             gestalt-selectors-list@bio.vu.nl
  2607.  
  2608.             to subscribed/unsubscribe and for the archive server:
  2609.             gestalt-selectors-list-request@bio.vu.nl
  2610.  
  2611. CompuServe  contributions:
  2612.             >INTERNET: gestalt-selectors-list@bio.vu.nl
  2613.  
  2614.             to subscribed/unsubscribe and for the archive server:
  2615.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  2616.  
  2617. Please contact me at the INTERNET address. I read my mail there almost
  2618. every day, while I log on to CompuServe only once or twice a month.
  2619.